

function iniToggleBtn() {
	var btns = $$('.toggleHiddenBtn');
	
	var HiddenBoxs = $$('.HiddenBox');
	if(btns.length != HiddenBoxs.length) return;
	var str = document.cookie;
	var iniReg = /boxState/g;
	if (iniReg.test(str) == true) {
		var reg = /boxState\[\d\]=\w*/g;
		str = str.match(reg);
		var j = (str.length > btns.length) ? btns.length : str.length;
		if(btns.length != str.length) return;
		for (var i = 0; i < j; i++) {
			var index = (str[i].indexOf('=')) + 1;
			HiddenBoxs[i].style.display = str[i].substr(index, str[i].length);
			if(HiddenBoxs[i].style.display == 'none') {
				btns[i].addClassName('closeHiddenBtn');
				var toggleElement = btns[i].parentNode;
				if (toggleElement.className=="toggleElement_on") {
					toggleElement.className="toggleElement_off"
				}
				
//				btns[i].className = btns[i].className.replace('closeHiddenBtn', '');
//				btns[i].className += (btns[i].className.length > 0) ? ' closeHiddenBtn' : 'closeHiddenBtn';
			}
			else {
				btns[i].removeClassName('closeHiddenBtn');
				
				var toggleElement = btns[i].parentNode;
				if (toggleElement.className=="toggleElement_off") {
					toggleElement.className="toggleElement_on"
				}
//				btns[i].className = btns[i].className.replace('closeHiddenBtn', '');
			}
			
		}
	}
}

var CookieLayer = Class.create(ToggleHidden, {
	openbox: function($super, i) {
		$super(i);
		this.setCookie();
	},
		
	hiddenbox: function($super, i) {
		$super(i);
		this.setCookie();
	},
	
	setCookie: function(){
		var boxes = $$('.HiddenBox');
		var exdate = new Date();
		exdate.setDate(exdate.getDate() + 7);
		for (var j = 0; j < boxes.length; j++) {
			document.cookie = 'boxState[' + j + ']=' + boxes[j].style.display + ';Expires=' + exdate.toGMTString();
		}
	}
});


/* cell handle functions
-----------------------------------------------------------------------------------*/
function markCells() {
	var thisCell = this;
	var thisRow = Element.up(thisCell, 'tr');
	var thisTable = Element.up(thisCell, 'table');
	var cellIndex = thisCell.cellIndex;
	var rowIndex = thisRow.rowIndex;
	
	Element.addClassName(thisCell, 'mouseover');
	
	var arrCells = thisRow.cells;
	for(i=cellIndex-1; i>=0; i--) {
		Element.addClassName(arrCells[i], 'mark');
	}
	
	var arrRows = thisTable.rows;
	for(i=rowIndex-1; i>=0; i--) {
		Element.addClassName( (arrRows[i].cells)[cellIndex], 'mark');
	}
	
}

function unmarkCells() {
	var thisCell = this;
	var thisRow = Element.up(thisCell, 'tr');
	var thisTable = Element.up(thisCell, 'table');
	var cellIndex = thisCell.cellIndex;
	var rowIndex = thisRow.rowIndex;
	
	Element.removeClassName(thisCell, 'mouseover');
	
	var arrCells = thisRow.cells;
	for(i=cellIndex-1; i>=0; i--) {
		Element.removeClassName(arrCells[i], 'mark');
	}
	
	var arrRows = thisTable.rows;
	for(i=rowIndex-1; i>=0; i--) {
		Element.removeClassName( (arrRows[i].cells)[cellIndex], 'mark');
	}
}


function gotoCellLink() {
	var objCell = this;
	var objLink = Element.down(objCell, 'a');
	if(!objLink || !objLink.href) {
		return false;
	}
	
	else {
		window.location = objLink.href;
	}
}
/* Set cookie */
function setCookie(name, value)
{
	//If name is the empty string, it places a ; at the beginning
	//of document.cookie, causing clearCookies() to malfunction.
	if(name != '')
	   document.cookie = name + '=' + value;
}
/* Get Cookie */
function getCookie(name)
{
	//Without this, it will return the first value 
	//in document.cookie when name is the empty string.
	if(name == '')
	   return('');
	
	name_index = document.cookie.indexOf(name + '=');
	
	if(name_index == -1)
	   return('');
	
	cookie_value =  document.cookie.substr(name_index + name.length + 1, 
	                                       document.cookie.length);
	
	//All cookie name-value pairs end with a semi-colon, except the last one.
	end_of_cookie = cookie_value.indexOf(';');
	if(end_of_cookie != -1)
	   cookie_value = cookie_value.substr(0, end_of_cookie);
	
	//Restores all the blank spaces.
	space = cookie_value.indexOf('+');
	while(space != -1)
	     { 
	     cookie_value = cookie_value.substr(0, space) + ' ' + 
	     cookie_value.substr(space + 1, cookie_value.length);
						 
	     space = cookie_value.indexOf('+');
	     }
	
	return(cookie_value);
}

/* register event
-----------------------------------------------------------------------------------*/
function regIndexEvents() {
	iniToggleBtn();
	new CookieLayer('toggleHiddenBtn', 'HiddenBox');
	
	var elements = $$('.priceTable tbody.basicPrice td');
	for(var i=elements.length-1; i>=0; i--) {
		elements[i].onmouseover = markCells;
		elements[i].onmouseout = unmarkCells;
		elements[i].onclick = gotoCellLink;
	}
	
	var elementsA = $$('.deviceList .pricePopup');
	var elementsB = $$('.deviceList .priceTable');
	if(elementsA && elementsA.length && elementsB && elementsB.length && (elementsA.length == elementsB.length)) {
		for (var i = elementsA.length - 1; i >= 0; i--) {
			var aButton = elementsA[i];
			var aTable = elementsB[i];			
			if (!aButton || !aTable) {
				continue;
			}
			
			new PopupHiddenDiv(aButton, aTable, {
				title: (aButton.title ? aButton.title : ' ')
			});
		}
	}
	// Pop up chinese New year
	if($('chineseNewYearOverlay')){
		
		if(getCookie('chineseNewYear')){
		}else{
			setCookie('chineseNewYear', true);

			$('chineseNewYear').style.display = 'block';
			$('chineseNewYear_content').style.display = 'block';
			$('chineseNewYearOverlay').style.display = 'block';
			
			$('chineseNewYearOverlay').onclick = function() {
				$('chineseNewYearOverlay').style.display = 'none';
				document.body.removeChild($('chineseNewYear_content'));
				
			} 
			$('closeChineseNewYear').onclick = function() {
				$('chineseNewYearOverlay').style.display = 'none';
				document.body.removeChild($('chineseNewYear_content'));
				return false;
				
			}
			$('chineseNewYear_content').onclick = function() {
				$('chineseNewYearOverlay').style.display = 'none';
				document.body.removeChild($('chineseNewYear_content'));
				
			}
		}
	}
	
	
}

Event.observe(document, "dom:loaded", regIndexEvents );

