function easy_CheckRequired_DeliveryOption(form,Action,formaction,formtarget,req1,req2,req3,req4,req5,req6,req7,req8,req9,req10,req11,req12,req13,req14,req15,req16,req17,req18,req19,req20,req21,req22,req23,req24,req25,req26,req27,req28,req29,req30,req31,req32,req33,req34,req35,req36,req37,req38,req39,req40){
	
	if (formtarget && formtarget!='')
	{
		document.forms[form].target=formtarget;				
	}
	if (formaction && formaction!='')
	{
		document.forms[form].action=formaction;				
	}
	
	var reqFieldsCaption="";
	var noOfParams=40;
	var i=0;
	var r=0;	
	var noOfRequired=0;
	
	// Pre-count required
	while (i < noOfParams)
    {
      i++;
	  if (eval("req"+i))
	  {		  
		  reqField=eval("req"+i);
		  if (eval("document.forms[form]."+reqField+".value")=='') 
		  {
			noOfRequired++;			
		  }
	  }   
    }
	
	var i=0;	
	
	while (i < noOfParams)
    {
      i++;
	  if (eval("req"+i))
	  {		  	  	 
		  reqField=eval("req"+i);
		  if (eval("document.forms[form]."+reqField+".value")=='')
		  {			  	
			r++;
			reqFieldCaption=eval("document.forms[form]."+reqField+"_caption.value");	
			if (r==noOfRequired && noOfRequired!=1) reqFieldsCaption=reqFieldsCaption+' and ';		
		  	reqFieldsCaption=reqFieldsCaption+' \"'+reqFieldCaption.toUpperCase()+'\"';			
		  }		 
		  if (eval("req"+i) && i<noOfRequired-1 && r>0) reqFieldsCaption=reqFieldsCaption+", ";
	  }   
    }
	
	if (reqFieldsCaption=='')
	{		
		now = new Date;
	
		thisMonth=now.getMonth()+1;
		thisYear=now.getYear();
	
		if (document.forms[form].cc_no && !_checkcreditcard(document.forms[form].cc_no.value, true))
		{
			alert("Credit Card Number is Invalid. Please re-type.");		
		}	
		else if (document.forms[form].cc_month && document.forms[form].cc_year && (document.forms[form].cc_year.value == thisYear && document.forms[form].cc_month.value < thisMonth))
		{
			alert("Credit Card Expiration Date is Invalid. Please check month and try again.");		
		}	
		else if (
				    (document.forms[form].password && document.forms[form].password_confirm)
				&& !(document.forms[form].password.value == document.forms[form].password_confirm.value)
		   )
		{				
			alert("The two passwords you have entered do not match. Please try again.");			
		}
		else if (document.forms[form].email_isemail && !isValidEmail(document.forms[form].email.value,0))
		{			
			alert("The email address you have entered is invalid. Please try again.");	
		}
		else if (document.forms[form].accept_terms_and_condition && !document.forms[form].accept_terms_and_condition.checked)
		{
			alert("Please accept the terms and conditions as described in order to proceed.");
		}
		else if (document.forms[form].delivery_option.value == 4 && document.forms[form].pickup_location && document.forms[form].pickup_location.value == '')
		{
			alert("Field \""+document.forms[form].pickup_location_caption.value.toUpperCase()+"\" is required.\nAll required fields are marked with a red asterisk [*].\nPlease make sure that you have completed all required fields.")
			
		}
		else if(document.forms[form].new_country && document.forms[form].new_city && document.forms[form].new_municipality && document.forms[form].new_postal_code && document.forms[form].new_address && document.forms[form].new_house_no)
		{
			if(document.forms[form].new_city.value != '' && (document.forms[form].new_municipality.value =='' || document.forms[form].new_postal_code.value =='' || document.forms[form].new_address.value =='' || document.forms[form].new_house_no.value ==''))
			{
				alert(document.getElementById('complete_all_alternative_error').value);
			}
			else
			{
				document.forms[form].status.value=Action;
				document.forms[form].submit();
			}
		}
		else
		{
			document.forms[form].status.value=Action;
			document.forms[form].submit();
		}
		
	}		
	else
	{
		if (r>1) 
		{
			plural="s";
			isAre="are";	
		}
		else
		{
			plural="";
			isAre="is";	
		}
		alert("Field"+plural+' '+reqFieldsCaption+" "+isAre+" required.\nAll required fields are marked with a red asterisk [*].\nPlease make sure that you have completed all required fields.");			
	}	
}


function goSmartSendToFriend (productID, pageID, linkname,title)
{
		var w = 520;
		var h = 590;
		winname = 'Window'+productID+'_'+Math.random()
		ColdFusion.Window.create(winname, title
		,'/include/ajax/form_loader_ajax.cfm?winname='+winname+'&productID='+productID+'&pageID='+pageID+'&link='+linkname,
		{x:0,y:100,height:h,width:w,modal:true,closable:true,draggable:true,resizable:true,center:true,initshow:true,minheight:200,minwidth:200 });
		ColdFusion.Window.onHide(winname,cleanup);
}

function cleanup(name)
{
	 try {
	 	ColdFusion.Window.destroy(name);
    } catch(e) {}
	
}


function goSmartShowHideDIV (displayid, shipOptionID, value) {

	var element = document.getElementById(displayid);
	
	if(value == shipOptionID){
			element.style.display='block';
	}
	else
	{
		element.style.display='none';
	}
}

function ec_onBinderror(httpCode,message)
{
	alert(httpCode+' '+message);
}

function setOrderByAndSubmit(form, orderByFieldID, sortByModeID, orderBy, orderByMode) 
{
	orderByElem = document.getElementById(orderByFieldID);
	orderByElem.value = orderBy;
	
	orderByModeElem = document.getElementById(sortByModeID);
	orderByModeElem.value = orderByMode;
	
	document.forms[form].submit();
}

function getPosition(e) {
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    } 
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX + 
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY + 
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
	return cursor;
}

function removeElement(divNum) {
	opacity(divNum, 100, 0, 0);
}


function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
		setTimeout("document.getElementById('"+id+"').style.display='none'",(timer * speed));
    } else if(opacStart < opacEnd) { 
		document.getElementById(id).style.display='';
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
} 

function showAjaxDiv(newDivName,e,url)
{
	if (document.getElementById(newDivName) == null){
		var newdiv = document.createElement('div');
		newdiv.id  = newDivName;
		newdiv.style.position = 'absolute';
		document.body.appendChild(newdiv);
		changeOpac(0, newDivName);
		posX = getPosition(e).x+100;
		newdiv.style.left = posX+'px';
		posY = getPosition(e).y;
		newdiv.style.top = posY + 'px'; 
		opacity(newDivName, 0, 100, 50);
		easyAjax(url,newDivName);
	}else{
		newdiv = document.getElementById(newDivName)
		posX = getPosition(e).x+100;
		newdiv.style.left = posX+'px';
		posY = getPosition(e).y;
		newdiv.style.top = posY + 'px'; 
		opacity(newDivName, 0, 100, 50);
		easyAjax(url,newDivName);
	}
}

function imageRollOver(element, imagenew)
{
	element.src = imagenew;
}

function experienceShowHideDiv(showdivid,hidedivid,applyFocus)
{
	var show = document.getElementById(showdivid);
	var hide = document.getElementById(hidedivid);
	
	show.style.display='block';
	hide.style.display='none';
	
	if(applyFocus){
		show.focus();
	}
}


var increamentdecrementby = 40;
var browserIsOpera = navigator.userAgent.indexOf('Opera')>=0?true:false;
var timerSpeed = 1;
var boxID = '';
var onTransition = false;

flag=0;
milisec=0;
seconds=10;

function goSmartMoveLeft(animateboxId,pxtomove,maxleftpos,arrowid,alternativedirectionarrowid)
{
	if(browserIsOpera)
	{
		increamentdecrementby = 20;
	}
	boxID = animateboxId;
	
	element = document.getElementById(animateboxId);
	
	currentleftpos = parseInt(element.style.left.replace('px',''));
	
	desiredleftpos = currentleftpos - pxtomove;
	
	if(desiredleftpos == (-maxleftpos))
	{
		elementarrow = document.getElementById(arrowid);
		elementarrow.style.display='none';
	}
	
	
	elementarrow2 = document.getElementById(alternativedirectionarrowid);
	elementarrow2.style.display='block';
	
	goSmartSliderLeft(boxID,currentleftpos,maxleftpos,desiredleftpos);
	
}

function goSmartMoveRight(animateboxId,pxtomove,maxRightpos,arrowid,alternativedirectionarrowid)
{
	boxID = animateboxId;
	
	element = document.getElementById(animateboxId);
	
	currentrightpos = parseInt(element.style.left.replace('px',''));
	
	desiredrightpos = currentrightpos + pxtomove;
	
	if(desiredrightpos == 0)
	{
		elementarrow = document.getElementById(arrowid);
		elementarrow.style.display='none';
	}
	
	elementarrow = document.getElementById(alternativedirectionarrowid);
	elementarrow.style.display='block';
	
	goSmartSliderRight(boxID,currentrightpos,maxRightpos,desiredrightpos);
}

function goSmartAnimateBoxTransition(animateboxId,increment,decrement,desiredleftpos)
{
	
	element = document.getElementById(animateboxId);
	
	oldvalue = parseInt(element.style.left.replace('px',''));
	
	value = 0;
	
	if((decrement == 1) && (increment == 0))
	{
		value = oldvalue - increamentdecrementby;
		
		if(value < desiredleftpos)
		{
			
			value = desiredleftpos;
		}
		
	}
	if((decrement == 0) && (increment == 1))
	{
		value = oldvalue + increamentdecrementby;
		
		if (value > desiredleftpos)
		{
			value = desiredleftpos;
		}
	}
	
	element.style.left = value+"px";
	
	return value;
}

function goSmartSliderRight(animateboxIde,currentpos,maxrightpos,desiredrightpos)
{
	var boxId = animateboxIde;
	
	if(currentpos < (desiredrightpos))
	{
		onTransition = true;
		currentposition = goSmartAnimateBoxTransition(boxId,1,0,desiredrightpos);
		
		setTimeout("goSmartSliderRight('"+boxId+"',currentposition,"+maxrightpos+",desiredrightpos)",timerSpeed);
	}
	else
	{
		onTransition = false;
	}
}

function goSmartSliderLeft(animateboxIde,currentpos,maxleftpos,desiredleftpos)
{
	var boxId = animateboxIde;
	
	if(currentpos > (desiredleftpos))
	{
		onTransition = true;
		
		currentposition = goSmartAnimateBoxTransition(boxId,0,1,desiredleftpos);
		
		setTimeout("goSmartSliderLeft('"+boxId+"',currentposition,"+maxleftpos+",desiredleftpos)",timerSpeed);
		
	}
	else
	{
		
		onTransition = false;
	}
}
function showElement(layer){
	var myLayer = document.getElementById(layer);
	if(myLayer.style.display=="none"){
	myLayer.style.display="block";
	myLayer.backgroundPosition="top";
	} else {
	myLayer.style.display="none";
	}
}

function printThisPage(){
	window.open('/print.cfm', 'newwindow', 'toolbar=no,status=no,scrollbars=yes,location=no,menubar=yes,directories=no,width=1000,height=1000,resizable=yes');
} 

function clearLogin(element,defvalue){
	if (element.value==defvalue){
		element.value='';
	}
}

function changeFieldValue(value,id){
	element=document.getElementById(id);
	
	if(element.value==1)
		element.checked=0;
	else
	
		element.checked=1;
}

function passwordStrength(password,returnDivCaption,returnDivStrength,strength0val,strength1val,strength2val,strength3val,strength4val,emptyVal)
{
	var desc = new Array();
	desc[0] = strength0val;
	desc[1] = strength1val;
	desc[2] = strength2val;
	desc[3] = strength3val;
	desc[4] = strength4val;
	desc[5] = strength4val;
 
	var score   = 0;
 
 	if(document.getElementById(returnDivStrength).style.display=='none'){
		document.getElementById(returnDivStrength).style.display='block';
	}
	
	if(document.getElementById(returnDivCaption).style.display=='none'){
		document.getElementById(returnDivCaption).style.display='block';
	}
	
	//if password bigger than 4 give 1 point
	if (password.length > 4) score++;
 
	//if password has both lower and uppercase characters give 1 point	
	if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;
 
	//if password has at least one number give 1 point
	if (password.match(/\d+/)) score++;
 
	//if password has at least one special caracther give 1 point
	if ( password.match(/.[!,@,##,$,%,^,&,*,?,_,~,-,(,)]/) )	score++;
 
	//if password bigger than 12 give another 1 point
	if (password.length > 8) score++;
	
	if (password.length > 12) score++;
 	
	if (password.length >0){
	 document.getElementById(returnDivCaption).innerHTML = desc[score];
	 document.getElementById(returnDivStrength).className = "strength" + score;
 	}
	else{
	 	document.getElementById(returnDivCaption).innerHTML = emptyVal;
	 	document.getElementById(returnDivStrength).className = "strength0";
	}
}

