function init() {
	//updateMenu();
	MENU_init();
	CHECKBOXES.init();
	//document.enhanceShadowedBoxes();
	updateExternalLinks();
}

function updateExternalLinks() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		//open external liks in a new browser window
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
			anchor.target = "_blank";
		//open popup liks in a new browser window
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "popup")
			anchor.href='javascript:void(0);';
	}
}

document.enhanceShadowedBoxes = function(){
	var leftBar = document.getElementById('leftBar');
	var rightBar = document.getElementById('rightBar');

	var divs = leftBar.getElementsByTagName('div');
	for(var i=0; i<divs.length; i++)
		if(divs[i].className=='shadowedBox') {
			bottomDiv = document.createElement('div');
			bottomDiv.className = 'shadowedBoxClose';
			insertAfter(bottomDiv,divs[i]);
	}
	var divs = rightBar.getElementsByTagName('div');
	for(var i=0; i<divs.length; i++)
		if(divs[i].className=='shadowedBox') {
			bottomDiv = document.createElement('div');
			bottomDiv.className = 'shadowedBoxClose';
			insertAfter(bottomDiv,divs[i]);
	}
}

document.getElementsByClassName = function(classNames, parentElement) {
	var children = parentElement.getElementsByTagName('*');
	var result = Array();
	for(var i=0; i < children.length; i++) {
		if(children[i].className==classNames[0] || children[i].className==classNames[1]) result.push(children[i]);
	}
	return result;
}

function generateTabs(){
	$tabs =document.getElementsByClassName(Array("tab_on","tab_off"),document.getElementById('tabs'));
	for(var i=0; i<$tabs.length; i++){
		$tabs[i].onclick=switchTab;
		if($tabs[i].className=="tab_on"){ JS_current_tab_on=$tabs[i].id; }
	}
}

function switchTab(){
	$id = this.id;
	if($id==JS_current_tab_on) return;
	document.getElementById(JS_current_tab_on+'_content').style.display='none';
	document.getElementById(JS_current_tab_on).className='tab_off';
	document.getElementById($id+'_content').style.display='';
	document.getElementById($id).className='tab_on';
	JS_current_tab_on=$id;
}


function insertAfter(newChild, refChild) {
	refChild.parentNode.insertBefore(newChild,refChild.nextSibling);
}

/**
* CHECKBOXES
**/
var CHECKBOXES = {
	_checkBoxFalse : './images/checkboxFalse.png',
	_checkBoxTrue : './images/checkboxTrue.png',
	_inputs : new Array(),
	_checkBoxesInsideLabels : false,

	init : function(){
		CHECKBOXES._inputs = document.getElementsByTagName('input');

	    //cycle trough the input fields
	    for(var i=0; i < CHECKBOXES._inputs.length; i++) {

	    	//Preload checkbox images
			if (document.images){
				pic1= new Image(11,12);
				pic1.src=CHECKBOXES._checkBoxFalse;

				pic2= new Image(11,12);
				pic2.src=CHECKBOXES._checkBoxTrue;
			}

	        //check if the input is a checkbox
	        if(CHECKBOXES._inputs[i].getAttribute('type') == 'checkbox') {

	            //create a new image
	            var img = document.createElement('img');

	            //check if the checkbox is checked
	            if(CHECKBOXES._inputs[i].checked) {
	                img.src = CHECKBOXES._checkBoxTrue;
	            } else {
	                img.src = CHECKBOXES._checkBoxFalse;
	            }

	            //set image ID and onclick action
	            img.id = 'checkImage'+i;
	            //img.onclick = new Function('CHECKBOXES.checkChange('+i+')');

	            //set label onclik
	            label = document.getElementById(CHECKBOXES._inputs[i].id+"_label");
	            label.onclick = new Function('CHECKBOXES.labelClick('+i+')');

	            //place image in front of the checkbox
	            CHECKBOXES._inputs[i].parentNode.insertBefore(img, CHECKBOXES._inputs[i]);

	            //hide the checkbox
	            CHECKBOXES._inputs[i].style.display='none';
	        }
	    }
	},

	checkChange : function (i,click) {
		if(!CHECKBOXES._checkBoxesInsideLabels) CHECKBOXES._inputs[i].click();
	    if(CHECKBOXES._inputs[i].checked) {
	        document.getElementById('checkImage'+i).src=CHECKBOXES._checkBoxTrue;
	    } else {
	        document.getElementById('checkImage'+i).src=CHECKBOXES._checkBoxFalse;
	    }
	},

	labelClick : function(i){
		if(CHECKBOXES._inputs[i].checked) {
	        document.getElementById('checkImage'+i).src=CHECKBOXES._checkBoxTrue;
	    } else {
	        document.getElementById('checkImage'+i).src=CHECKBOXES._checkBoxFalse;
	    }
	    CHECKBOXES._inputs[i].click();
	}
}

/**
* SHARE PAGE
* COPYRIGHT: Anis Boubaker all rights reserved.
**/
var SHAREPAGE = {
	_displayed : false,
	_timerSet : false,
	//Element containing the share page links
	_sharePageDivId : 'sharePage',
	//Container element from which we start calculating the positionning
	_mainContainerId: 'mainContainer',
	_timeOut : null,
	_hideDelay : 100, //in ms
	_pageWidth: 980,
	_title : "ProcouponMedia | Coupons Imprimables | Printable Coupons | Concours | Contests",
	_url : "http://www.procouponmedia.com",
	_method : "",

	show : function (component){
		var x = SHAREPAGE.getXOffset(component);
		var y = SHAREPAGE.getYOffset(component);
		var width = component.width;
		var height = component.height;

		y = y + height;
		x = SHAREPAGE._pageWidth - (x+width);

		clearTimeout(SHAREPAGE._timeout);

		document.getElementById(SHAREPAGE._sharePageDivId).style.right = x+'px';
		document.getElementById(SHAREPAGE._sharePageDivId).style.top= y+'px';
		document.getElementById(SHAREPAGE._sharePageDivId).style.display= '';
		SHAREPAGE._displayed=true;
	},

	doHide : function(){
		document.getElementById(SHAREPAGE._sharePageDivId).style.display= 'none';
		SHAREPAGE._displayed=false;
	},

	hide : function(){
		SHAREPAGE._timeout = setTimeout("SHAREPAGE.doHide()",SHAREPAGE._hideDelay);
	},

	showHide : function(component){
		if(SHAREPAGE._displayed==true){
			SHAREPAGE.hide();
		} else{
			SHAREPAGE.show(component);
		}
	},

	getXOffset : function (component){
		var curleft = curtop = 0;
		if (component.offsetParent) {
			curleft = component.offsetLeft
			//curtop = component.offsetTop
			if(component.id == SHAREPAGE._mainContainerId) return curleft;
			while (component = component.offsetParent) {
				if(component.id == SHAREPAGE._mainContainerId) return curleft;
				curleft += component.offsetLeft
				//curtop += component.offsetTop
			}
		}
		return curleft;
	},

	getYOffset : function (component){
		var curleft = curtop = 0;
		if (component.offsetParent) {
			//curleft = component.offsetLeft
			curtop = component.offsetTop
			if(component.id == SHAREPAGE._mainContainerId) return curTOP;
			while (component = component.offsetParent) {
				if(component.id == SHAREPAGE._mainContainerId) return curtop;
				//curleft += component.offsetLeft
				curtop += component.offsetTop
			}
		}
		return curtop;
	},

	share : function(method){
		SHAREPAGE._title = document.getElementById('sharePageTitle').value;
		SHAREPAGE._url = document.getElementById('sharePageURL').value;
		SHAREPAGE._method = method;
		var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;
		
		submitForm = false;
		switch(method){
			case 'favorites': SHAREPAGE.bookmark(); break;
			//case 'email': void(window.open('./sharePageEmail.php?url='+SHAREPAGE._url+'&title='+SHAREPAGE._title,'share_page','resizable=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,fullscreen=no,dependent=no,width=800,height=600,left=0,top=0')); break;
			//default: void(window.open('./sharePage.php?provider='+method+'&url='+SHAREPAGE._url+'&title='+SHAREPAGE._title,'share_page','resizable=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,fullscreen=no,dependent=no,width=800,height=600,left=0,top=0')); break;
			case 'email':
				void(GB_show('&nbsp;','Fermer','./modal/sharePageEmail.php?url='+SHAREPAGE._url+'&title='+SHAREPAGE._title,530,600));
				/*if(!isIE6){
					void(GB_show('&nbsp;','Fermer','./modal/sharePageEmail.php?url='+SHAREPAGE._url+'&title='+SHAREPAGE._title,530,600));
				} else {
					void(window.open('','share_page','resizable=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,fullscreen=no,dependent=no,width=550,height=400,left=100,top=100'));
					document.getElementById('sharePageForm').action='./modal/sharePageEmail.php';
					submitForm = true;
				}*/
				break;
			case 'twitter':
				void(window.open('','share_page','resizable=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,fullscreen=no,dependent=no,width=800,height=600,left=0,top=0'));
				document.getElementById('sharePageForm').action='./modal/sharePage.php';
				document.getElementById('sharePageMethod').value=method;
				submitForm = true;
				break;			
			default:
				void(GB_show('&nbsp;','Fermer','./modal/sharePage.php?url='+SHAREPAGE._url+'&method='+SHAREPAGE._method+'&title='+SHAREPAGE._title,530,800));
				/*if(!isIE6){
					void(GB_show('&nbsp;','Fermer','./modal/sharePage.php?url='+SHAREPAGE._url+'&method='+SHAREPAGE._method+'&title='+SHAREPAGE._title,530,700));
				} else {
					void(window.open('','share_page','resizable=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,fullscreen=no,dependent=no,width=800,height=600,left=0,top=0'));				
					document.getElementById('sharePageForm').action='./modal/sharePage.php';
					document.getElementById('sharePageMethod').value=method;
					submitForm = true;
				}*/
				break;
		}
		if(submitForm){
			document.getElementById('sharePageForm').target='share_page';
			document.getElementById('sharePageForm').submit();
		}
	},

	bookmark : function(){
		if (window.sidebar) { // Mozilla Firefox Bookmark
			window.sidebar.addPanel(SHAREPAGE._title, SHAREPAGE._url,"");
		} else if( window.external ) { // IE Favorite
			window.external.AddFavorite( SHAREPAGE._url, SHAREPAGE._title); }
		else if(window.opera && window.print) { // Opera Hotlist
			return true; }
	}
}

/**
* SHARE PAGE
* COPYRIGHT: Anis Boubaker all rights reserved.
**/
var SHARECOUPON = {
	_displayed : false,
	_timerSet : false,
	//Element containing the share page links
	_SHARECOUPONDivId : 'shareCoupon',
	//Container element from which we start calculating the positionning
	_mainContainerId: 'mainContainer',
	_timeOut : null,
	_hideDelay : 200, //in ms
	_pageWidth: 980,
	_method : "",
	_idCoupon : 0,

	show : function (component){
		if(document.getElementById(SHARECOUPON._SHARECOUPONDivId).style.display=='') return;
		var x = SHARECOUPON.getXOffset(component);
		var y = SHARECOUPON.getYOffset(component);
		var width = component.width;
		var height = component.height;
		SHARECOUPON._idCoupon = component.id.substring(11);

		y = y - 95;
		//x = SHARECOUPON._pageWidth - (x+width);

		clearTimeout(SHARECOUPON._timeout);

		document.getElementById(SHARECOUPON._SHARECOUPONDivId).style.left = x+'px';
		document.getElementById(SHARECOUPON._SHARECOUPONDivId).style.top= y+'px';
		document.getElementById(SHARECOUPON._SHARECOUPONDivId).style.display= '';
		SHARECOUPON._displayed=true;
	},

	doHide : function(){
		document.getElementById(SHARECOUPON._SHARECOUPONDivId).style.display= 'none';
		SHARECOUPON._displayed=false;
	},

	hide : function(){
		SHARECOUPON._timeout = setTimeout("SHARECOUPON.doHide()",SHARECOUPON._hideDelay);
	},
	
	persist : function(){
		clearTimeout(SHARECOUPON._timeout);
	},

	showHide : function(component){
		if(SHARECOUPON._displayed==true){
			SHARECOUPON.hide();
		} else{
			SHARECOUPON.show(component);
		}
	},

	getXOffset : function (component){
		var curleft = curtop = 0;
		if (component.offsetParent) {
			curleft = component.offsetLeft
			//curtop = component.offsetTop
			if(component.id == SHARECOUPON._mainContainerId) return curleft;
			while (component = component.offsetParent) {
				if(component.id == SHARECOUPON._mainContainerId) return curleft;
				curleft += component.offsetLeft
				//curtop += component.offsetTop
			}
		}
		return curleft;
	},

	getYOffset : function (component){
		var curleft = curtop = 0;
		if (component.offsetParent) {
			//curleft = component.offsetLeft
			curtop = component.offsetTop
			if(component.id == SHARECOUPON._mainContainerId) return curTOP;
			while (component = component.offsetParent) {
				if(component.id == SHARECOUPON._mainContainerId) return curtop;
				//curleft += component.offsetLeft
				curtop += component.offsetTop
			}
		}
		return curtop;
	},

	share : function(method){
		SHARECOUPON._method = method;
		var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;
		
		submitForm = false;
		switch(method){
			case 'email':
				void(GB_show('&nbsp;','Fermer','./modal/shareCouponEmail.php?idCoupon='+SHARECOUPON._idCoupon,530,600));				
				break;
			case 'web':
				void(GB_show('&nbsp;','Fermer','./modal/shareCouponWeb.php?idCoupon='+SHARECOUPON._idCoupon,530,600));				
				break;
			case 'twitterCoupon':
				void(window.open('','share_page','resizable=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,fullscreen=no,dependent=no,width=800,height=600,left=0,top=0'));
				document.getElementById('sharePageForm').action='./modal/shareCoupon.php';
				document.getElementById('sharePageMethod').value=method;
				document.getElementById('sharePageIdCoupon').value=SHARECOUPON._idCoupon;
				submitForm = true;
				break;
			default:
				void(GB_show('&nbsp;','Fermer','./modal/shareCoupon.php?idCoupon='+SHARECOUPON._idCoupon+'&method='+SHARECOUPON._method,530,700));
				/*if(!isIE6){
					void(GB_show('&nbsp;','Fermer','./modal/SHARECOUPON.php?url='+SHARECOUPON._url+'&method='+SHARECOUPON._method+'&title='+SHARECOUPON._title,530,700));
				} else {
					void(window.open('','share_page','resizable=no,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,fullscreen=no,dependent=no,width=800,height=600,left=0,top=0'));				
					document.getElementById('SHARECOUPONForm').action='./modal/SHARECOUPON.php';
					document.getElementById('SHARECOUPONMethod').value=method;
					submitForm = true;
				}*/
				break;
		}
		if(submitForm){
			document.getElementById('sharePageForm').target='share_page';			
			document.getElementById('sharePageForm').submit();			
		}
	}
}


function addCoupon(id, checkbox){
	if(checkbox.checked) xajax_addEcoupon(id);
	else xajax_removeEcoupon(id);
}

function updateCartItems(nb){
	document.getElementById('cartBoxNbItems').innerHTML=nb;
	if(document.getElementById('cartNbItems')){
		document.getElementById('cartNbItems').innerHTML=nb;
	}
	if(document.getElementById('printButton')){
		if(nb>0) document.getElementById('printButton').disabled=false;
		else document.getElementById('printButton').disabled=true;
	}
}

function printCoupons(code){
	document.getElementById('cartTable').style.display='none';
	document.getElementById('cartProduce').style.display='';
	xajax_produceCoupons(code);
}

function doLogin(email, password, box){
	if(box=="loginBox"){
		document.getElementById('procouponVisa_error').style.display='none';
	}
	xajax_login(email, password, box);
	//alert('ok');
	return false;
}

function loginError(box){
	if(box=="quickLogin"){
		document.getElementById('quickLoginLogin').style.display='none';
		document.getElementById('quickLoginPass').style.display='none';
		document.getElementById('quickLogin_error').style.display='';
	}
	if(box=="loginBox"){
		document.getElementById('procouponVisa_error').style.display='';
	}
}

function hideQuickLoginError(){
	document.getElementById('quickLoginLogin').style.display='';
	document.getElementById('quickLoginPass').style.display='';
	document.getElementById('quickLogin_error').style.display='none';
}

function setPostalCode(){
	
}


var xajaxStatusMessages=false;
window.onload = init;
//CHECKBOXES.init();