var gadgetContainerVisibility_1 = false;
var gadgetContainerVisibility_2 = false;
var gadgetContainerVisibility_3 = false;
var gadgetContainerVisibility_4 = false;
var gadgetContainerVisibility_5 = false;
var gadgetContainerVisibility_6 = false;
var selectedGadgetTab;
	
function moveAccordian(obj){
	var id = obj.id;	
	var gadgetName = id.substring(0, id.length-2)
	var gadgetNumber = id.substring(id.length-1)
	
	if(gadgetName == "googleGadgetHeader" && selectedGadgetTab != id){
		selectedGadgetTab = id;
		new Effect.BlindRight('googleGadgetContainer_' + gadgetNumber, {queue: 'parallel', duration: 0.3});
		new Effect.BlindLeft('yahooGadgetContainer_' + gadgetNumber, {queue: 'parallel', duration: 0.3});
		new Effect.BlindLeft('htmlGadgetContainer_' + gadgetNumber, {queue: 'parallel', duration: 0.3});
	} else if(gadgetName == "yahooGadgetHeader" && selectedGadgetTab != id){
		selectedGadgetTab = id;
		new Effect.BlindLeft('googleGadgetContainer_' + gadgetNumber, {queue: 'parallel', duration: 0.3});
		new Effect.BlindRight('yahooGadgetContainer_' + gadgetNumber, {queue: 'parallel', duration: 0.3});
		new Effect.BlindLeft('htmlGadgetContainer_' + gadgetNumber, {queue: 'parallel', duration: 0.3});
	} else if(gadgetName == "htmlGadgetHeader" && selectedGadgetTab != id){
		selectedGadgetTab = id;
		new Effect.BlindLeft('googleGadgetContainer_' + gadgetNumber, {queue: 'parallel', duration: 0.3});
		new Effect.BlindLeft('yahooGadgetContainer_' + gadgetNumber, {queue: 'parallel', duration: 0.3});
		new Effect.BlindRight('htmlGadgetContainer_' + gadgetNumber, {queue: 'parallel', duration: 0.3});
	}
}

function showHideGadgetContainer(containerNumber){
	var tempContainerVisibility = eval('gadgetContainerVisibility_' + containerNumber);

	if(tempContainerVisibility){
		/* Hide Container */
		new Effect.BlindUp('gadgetContainer_' + containerNumber, {queue: 'first', duration: 0.3});
		var tempImage = eval('moreGadgetImage_' + containerNumber);
	  $(tempImage).src = "images/more.gif";
		
		switch(containerNumber){
			case 1:
				gadgetContainerVisibility_1 = false;
				break;
			case 2:
				gadgetContainerVisibility_2 = false;
				break;
			case 3:
				gadgetContainerVisibility_3 = false;
				break;
			case 4:
				gadgetContainerVisibility_4 = false;
				break;
			case 5:
				gadgetContainerVisibility_5 = false;
				break;
			case 6:
				gadgetContainerVisibility_6 = false;
				break;
		}
		
	} else {
		/* Show Container */
		new Effect.BlindDown('gadgetContainer_' + containerNumber, {queue: 'first', duration: 0.3});
		var tempImage = eval('moreGadgetImage_' + containerNumber);
	  $(tempImage).src = "images/hide.gif";
		
		switch(containerNumber){
			case 1:
				gadgetContainerVisibility_1 = true;
				break;
			case 2:
				gadgetContainerVisibility_2 = true;
				break;
			case 3:
				gadgetContainerVisibility_3 = true;
				break;
			case 4:
				gadgetContainerVisibility_4 = true;
				break;
			case 5:
				gadgetContainerVisibility_5 = true;
				break;
			case 6:
				gadgetContainerVisibility_6 = true;
				break;
		}	
	}
}


window.onload=function(){
	for(i=1; i<=6; i++){
		new Effect.BlindUp('gadgetContainer_' + i, {queue: 'first', duration: 0});
		new Effect.BlindRight('googleGadgetContainer_' + i, {queue: 'parallel', duration: 0.3});
		new Effect.BlindLeft('yahooGadgetContainer_' + i, {queue: 'parallel', duration: 0.3});
		new Effect.BlindLeft('htmlGadgetContainer_' + i, {queue: 'parallel', duration: 0.3});
	}
}



















/********************/
/** Countdown Code **/
/********************/

var shortMonthArray = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var longMonthArray = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var monthArray;
var Time = ["12:00 AM","1:00 AM","2:00 AM","3:00 AM","4:00 AM","5:00 AM","6:00 AM","7:00 AM","8:00 AM","9:00 AM","10:00 AM","11:00 AM","12:00 PM","1:00 PM","2:00 PM","3:00 PM","4:00 PM","5:00 PM","6:00 PM","7:00 PM","8:00 PM","9:00 PM","10:00 PM","11:00 PM"];
var weddingDate = "";
var weddingTime = "";
var countdownActive = true;
var step = -1;
var countdownDateFormat;
var completionMsg = "0 Days, 00:00:00";
var timeoutTime;
var dateDiff;
var secs;
var days;
var tip = "";
var dynamicLink;
var weddingStreetWeddingsLink = "http://www.magnetstreet.com/store/home/market/517";
var urlAddress = weddingStreetWeddingsLink;


function stopCountdown(){
	countdownActive = false;
}

function loadCountdown(countdownToUse){
	countdownActive = true;
	step = Math.ceil(step);
	if (step == 0)
	  countdownActive = false;
	timeoutTime = (Math.abs(step)-1)*1000 + 958;
	var endDate = new Date(weddingDate);
	endDate.setHours(weddingTime)
	var currentDate = new Date();
	if(step > 0){
	  dateDiff = new Date(currentDate - endDate);
	} else {
	  dateDiff = new Date(endDate - currentDate);
	}
	secs = Math.floor(dateDiff.valueOf()/1000);
	switch(countdownToUse){
		case 1:
			countdown1(secs);
			break;
		case 2:
			countdown2(secs);
			break;
		case 3:
			countdown3(secs);
			break;
		case 4:
			countdown4(secs);
			break;
		case 5:
			countdown5(secs);
			break;
		case 6:
			countdown6(secs);
			break;
		default:
			countDown(secs);
	}
}

function calculateTime(secs, num1, num2, padResult) {
  s = ((Math.floor(secs/num1))%num2).toString();
  if (padResult && s.length < 2)
    s = "0" + s;
  return s;
}

function countdown1(seconds) {
  if (seconds < 0) {
    document.getElementById("countdownTimer").innerHTML = completionMsg;
    return;
  }
  days = calculateTime(seconds,86400,100000, false);
  var displayDate;
  if(days == 1){
    document.getElementById("days_text").innerHTML = "day";
  } else {
    document.getElementById("days_text").innerHTML = "days";
  }
  
  document.getElementById("countdownDays").innerHTML = days;
  document.getElementById("countdownHours").innerHTML = calculateTime(seconds,3600,24, true);
  document.getElementById("countdownMinutes").innerHTML = calculateTime(seconds,60,60, true);
  document.getElementById("countdownSeconds").innerHTML = calculateTime(seconds,1,60, true);
  
  if (countdownActive)
    setTimeout("countdown1(" + (seconds+step) + ")", timeoutTime);
}	

function countdown2(seconds) {
  if (seconds < 0) {
    document.getElementById("countdownTimer").innerHTML = completionMsg;
    return;
  }
  days = calculateTime(seconds,86400,100000, false);
  var displayDate;
  if(days == 1){
    document.getElementById("days_text").innerHTML = "day";
  } else {
    document.getElementById("days_text").innerHTML = "days";
  }
  
  document.getElementById("countdownDays").innerHTML = days;
  
  displayDate = countdownDateFormat.replace(/%H%/g, calculateTime(seconds,3600,24, true));
  displayDate = displayDate.replace(/%M%/g, calculateTime(seconds,60,60, true));
  displayDate = displayDate.replace(/%S%/g, calculateTime(seconds,1,60, true));

  document.getElementById("countdownTimer").innerHTML = displayDate;
  if (countdownActive)
    setTimeout("countdown2(" + (seconds+step) + ")", timeoutTime);
}

function countdown3(seconds) {
  if (seconds < 0) {
    document.getElementById("countdownTimer").innerHTML = completionMsg;
    return;
  }
  days = calculateTime(seconds,86400,100000, false);
  var displayDate;
  if(days == 1){
    document.getElementById("days_text").innerHTML = "day";
  } else {
    document.getElementById("days_text").innerHTML = "days";
  }
  
  document.getElementById("countdownDays").innerHTML = days;
  
  displayDate = countdownDateFormat.replace(/%H%/g, calculateTime(seconds,3600,24, true));
  displayDate = displayDate.replace(/%M%/g, calculateTime(seconds,60,60, true));
  displayDate = displayDate.replace(/%S%/g, calculateTime(seconds,1,60, true));

  document.getElementById("countdownTimer").innerHTML = displayDate;
  if (countdownActive)
    setTimeout("countdown3(" + (seconds+step) + ")", timeoutTime);
}

function countdown4(seconds) {
  if (seconds < 0) {
    document.getElementById("countdownTimer").innerHTML = completionMsg;
    return;
  }
  days = calculateTime(seconds,86400,100000, false);
  var displayDate;
  if(days == 1){
    document.getElementById("days_text").innerHTML = "day until";
  } else {
    document.getElementById("days_text").innerHTML = "days until";
  }
  		  
  document.getElementById("countdownDays").innerHTML = days;
  //alert(document.getElementById("days_text").innerHTML);
  //alert(countdownDateFormat);
  
  displayDate = countdownDateFormat.replace(/%D%/g, days);
  displayDate = displayDate.replace(/%H%/g, calculateTime(seconds,3600,24, true));
  displayDate = displayDate.replace(/%M%/g, calculateTime(seconds,60,60, true));
  displayDate = displayDate.replace(/%S%/g, calculateTime(seconds,1,60, true));
	
	document.getElementById("countdownTimer").innerHTML = displayDate;  
  if (countdownActive)
    setTimeout("countdown4(" + (seconds+step) + ")", timeoutTime);
}	

function countdown5(seconds) {
  if (seconds < 0) {
    document.getElementById("countdownTimer").innerHTML = completionMsg;
    return;
  }
  days = calculateTime(seconds,86400,100000, false);
  var displayDate;
  if(days == 1){
    document.getElementById("days_text").innerHTML = "day to";
  } else {
    document.getElementById("days_text").innerHTML = "days to";
  }
  
  document.getElementById("countdownDays").innerHTML = days;
  
  displayDate = countdownDateFormat.replace(/%H%/g, calculateTime(seconds,3600,24, true));
  displayDate = displayDate.replace(/%M%/g, calculateTime(seconds,60,60, true));
  displayDate = displayDate.replace(/%S%/g, calculateTime(seconds,1,60, true));

  document.getElementById("countdownTimer").innerHTML = displayDate;
  if (countdownActive)
    setTimeout("countdown5(" + (seconds+step) + ")", timeoutTime);
}

function countdown6(seconds) {
  if (seconds < 0) {
    document.getElementById("countdownTimer").innerHTML = completionMsg;
    return;
  }
  days = calculateTime(seconds,86400,100000, false);
  var displayDate;
  document.getElementById("countdownDays").innerHTML = days;
  
  displayDate = countdownDateFormat.replace(/%H%/g, calculateTime(seconds,3600,24, true));
  displayDate = displayDate.replace(/%M%/g, calculateTime(seconds,60,60, true));
  displayDate = displayDate.replace(/%S%/g, calculateTime(seconds,1,60, true));

  document.getElementById("countdownTimer").innerHTML = displayDate;
  if (countdownActive)
    setTimeout("countdown6(" + (seconds+step) + ")", timeoutTime);
  
}	

function getWeddingDate() {
  var tempDate = new Date(weddingDate);
  var conv_date = tempDate.getDate();  
  var conv_month = monthArray[(tempDate.getMonth())]; 
  var conv_year = tempDate.getFullYear();
  
  document.getElementById("weddingDate").innerHTML = conv_month + " " + conv_date + ", " + conv_year;
}

function getWeddingDate5() {
  var convertedWedDate;
  var tempDate = new Date(weddingDate);
  var conv_date = tempDate.getDate();  
  var conv_month = monthArray[(tempDate.getMonth())]; 
  var conv_year = tempDate.getFullYear();
  
  document.getElementById("weddingDate").innerHTML = conv_month + " " + conv_date;
  document.getElementById("weddingYear").innerHTML = conv_year;
}

var tipUrl = "weddingtips.txt";
var tipRequest_ = null;

function getTipOfDay() {
  new Ajax.Request(tipUrl, {method: 'get',onSuccess: function(transport) {setTip(transport.responseText)}});
}
 
function setTip(text){
  var tipsArray = new Array();
  var tipArray = new Array();
  tipsArray = text.split(";");
  if(tipsArray != null){
    var tempTip = tipsArray[days];
	  if(tempTip != null){
	    var tipArray = tempTip.split("|");	
	    tip = tipArray[1];
	    dynamicLink = tipArray[2];
	  } else {
	    tip = "Please update your wedding date and time using the options menu.";
	    dynamicLink = weddingStreetWeddingsLink;
	  }
	} else {
	  tip = "Please update your wedding date and time using the options menu.";
	  dynamicLink = weddingStreetWeddingsLink;
	}
	if(dynamicLink == null || dynamicLink =="")
		dynamicLink = weddingStreetWeddingsLink;
	$("tipOfDay").innerHTML = tip;
	$("dynamicLink").href = dynamicLink;
}
	
/************************/
/** General Setup Code **/
/************************/
	
function hideCodeBox(){
	//new Effect.Appear("countdownDiv", {queue: 'end', duration: 0.4});
	new Effect.Appear("mainBody", {queue: 'end', duration: 0.4});
  new Effect.Fade("generatedCountdownDiv", {queue: 'front', duration: 0.4});
  //$("generatedCountdownDiv").style.display="none";	
	countdownActive = false;
}

	
function validateDate(weddingDateToTest){
	var dt=weddingDateToTest
	var currentDate = new Date();
	var wedDate = new Date(weddingDateToTest.value);
  dateDiff = new Date(wedDate - currentDate);
  secs = Math.floor(dateDiff.valueOf()/1000);
  if(secs < 0){
    alert("Please enter a date in the future");
    dt.focus();
    return false;
  } else {
  	return true;
	}
} 

function validateAndSetPreferences(containerNumber){
  stopCountdown();
  var tempWeddingDate = eval('weddingDateInput_' + containerNumber);
	var tempWeddingTime = eval('weddingTimeInput_' + containerNumber);
  
  if($(tempWeddingDate).value != ""){
  	if($(tempWeddingDate).value != "" && validateDate($(tempWeddingDate))){
	    weddingDate = $(tempWeddingDate).value;
	    weddingTime = $(tempWeddingTime).value;
	    generateCountdownAndHtml(containerNumber);
  	}
  } else {
  	alert("Please enter a wedding date.");
  	return false;
	}
}

function hoverIn(obj){
  obj.style.backgroundColor="#AFC5D6"
}

function hoverOut(obj){
  if($("hiddenCountdown").value == obj.id)
  	obj.style.backgroundColor="#AFC5D6"
  else
  	obj.style.backgroundColor="#FFFFFF"
}

function selectCountdown(obj){
  obj.style.border="1px solid #00FF00";
  obj = Element.cleanWhitespace(obj);
  
  $("hiddenCountdown").value = obj.id;
  
  var tempObj;
  var siblings = $("containerTable").getElementsByClassName("countdown");
  for(i = 0; i < siblings.length; i++){
  	tempObj =siblings[i];
    if(tempObj.id != obj.id){
    	tempObj.style.border="1px solid #FF0000";
    	tempObj.style.backgroundColor="#FFFFFF";
    }
  }
}

function generateCountdownAndHtml(containerNumber){
	var newUrl = "countdowns/countdown" + containerNumber + ".html";
	new Ajax.Request(newUrl, {method: 'get',onSuccess: function(transport) {updateCountdownStuff(transport.responseText, containerNumber)}})
}

function updateCountdownStuff(htmlCode, containerNumber){
	htmlCode = htmlCode.replace(/&gt;/g, ">");
  htmlCode = htmlCode.replace(/&lt;/g, "<");
	$("generatedCountdown").innerHTML = htmlCode;
	
	switch(containerNumber) {
		case 1:
			completionMessage = "00"
			monthArray = longMonthArray;
			getWeddingDate();
	  	loadCountdown(1);
	  	break;
		case 2:
			countdownDateFormat = ":%H%:%M%:%S%";
			completionMessage = ":00:00:00"
			monthArray = longMonthArray;
			getWeddingDate();
	  	loadCountdown(2);
	  	break;
		case 3:
			countdownDateFormat = ": %H%h : %M%m : %S%s";
			completionMessage = ": 00h : 00m : 00s"
			monthArray = longMonthArray;
			getWeddingDate();
	  	loadCountdown(3);
	  	break;
		case 4:
			countdownDateFormat = "%D%:%H%:%M%:%S%";
			completionMessage = "000:00:00:00"
			monthArray = shortMonthArray;
			getWeddingDate();
	  	loadCountdown(4);
			getTipOfDay();
			break;
		case 5:
			countdownDateFormat = ":%H%:%M%:%S%";
			completionMessage = "00:00:00"
			monthArray = longMonthArray;
			getWeddingDate5();
	  	loadCountdown(5);
			getTipOfDay();
			break;
		case 6:
			countdownDateFormat = ":%H%:%M%:%S%";
			completionMessage = ":00:00:00"
			monthArray = shortMonthArray;
			getWeddingDate();
	  	loadCountdown(6);
			getTipOfDay();
			break;
	}
	
	htmlCode = htmlCode.replace(/__weddingDate__/g, weddingDate);
	htmlCode = htmlCode.replace(/__weddingTime__/g, weddingTime);
	$("htmlTextArea").value = htmlCode;
	
  var scrollTop = document.body.scrollTop;
	if (scrollTop == 0) {
	  if (window.pageYOffset)
	    scrollTop = window.pageYOffset;
	  else
	    scrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
	}
  
  $("generatedCountdownDiv").style.top = scrollTop + 150 + "px";
  $("generatedCountdownDiv").style.left = ((document.body.clientWidth/2) - 200) + "px";
  new Effect.Fade("mainBody", {to: '0.5', duration: 0.4});
  new Effect.Appear("generatedCountdownDiv", {queue: 'end', duration: 0.4});	
}

function generateHtml(){
  var photocardVertLayout = $("included"); 
  var photocardHorLayout = $("included_table"); 

  if($("hiddenOrientation").value == "vertical"){
    var layoutCode = photocardVertLayout.innerHTML;
    $("hiddenIncluded").innerHTML = layoutCode;
  } else {
    var layoutCode = photocardHorLayout.innerHTML;
    $("hidden_included_table").innerHTML = layoutCode;
  }
  
  var htmlCode = $("hiddenPhotocardDiv").innerHTML;
  
  //alert(htmlCode);
  
  //htmlCode = htmlCode.replace(/#script/g, "<script");
  //htmlCode = htmlCode.replace(/script#/g, "script>");
  htmlCode = htmlCode.replace(/&gt;/g, ">");
  htmlCode = htmlCode.replace(/&lt;/g, "<");
  htmlCode = htmlCode.replace(/&amp;/g, "&");
  htmlCode = htmlCode.replace(/dashed/g, "hidden");
  htmlCode = htmlCode.replace(/solid/g, "hidden");
  htmlCode = htmlCode.replace(/--spacer--/g, "&nbsp;");
 
  $("cardHTML").value = htmlCode;
  nextDiv();
}




