// debugger by jitu
function _j(obj){
    try{
        console.log(obj)
    }
    catch(e){alert(obj)}
}

var currentMode = 'register'; //set flag to login or register
var emailPat = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
var isToggle = true;	//flag to block user to open close so fast
var toggleTime;
var toggleOut = function(){	//remove blockage
	isToggle = true;
	clearInterval(toggleTime);
	}
function toggleForm(sho,hid){
	if( $(sho)[0].style.display  && isToggle){
		$(sho).slideDown(500);
		$(hid).slideUp(500);
		isToggle = false;
		toggleTime = setInterval(toggleOut, 500 );
		}
	if( sho == 'register' )
		currentMode = 'register';
	else
		currentMode = 'login';
	}

//validate submit to register or login
function validateSubmit(basePath,destination){
    //_j(currentMode)
	if( currentMode == 'login' ){
		if( !$('#email1').val() ){
			createOverlay({title:'Required Field Missing',msg:'Please provide email to login'});
			return false;
			}
		else if (!emailPat.test($('#email1').val()) ) {
			createOverlay({title:'Required Field Missing',msg:'Please provide valid email address'});
			return false;
			}
		else if( !$('#password1').val() ){
			createOverlay({title:'Required Field Missing',msg:'Please provide password to login'});
			return false;
			}
		createOverlay({title:'Please Wait',msg:'Processing your request.'});
		new cAjaxForm({
			form:'#loginForm',
			beforeSend:function(){},
			onSuccess:function(m,status){
				if(m == 'success') window.location = basePath+destination;
				else createOverlay({title:'Oops',msg:m});
				}
			});
		}
	else if( currentMode == 'register' ){
		if( !$('#firstName').val() ){
			createOverlay({title:'Required Field Missing',msg:'Please provide name'});
			return false;
			}
		else if( !$('#email').val() ){
			createOverlay({title:'Required Field Missing',msg:'Please provide email to register, this will be your login id'});
			return false;
			}
		else if (!emailPat.test($('#email').val()) ) {
			createOverlay('Required Field Missing','Please provide valid email address');
			return false;
			}
		else if( !$('#password').val() ){
			createOverlay('Required Field Missing','Please provide password to register');
			return false;
			}
		else if( $('#password').val() != $('#reTypePassword').val() ){
			createOverlay({title:'Required Field Missing',msg:'Password not matched with retyped password'});
			return false;
			}
		else if( !$('#companyName').val() ){
			createOverlay({title:'Required Field Missing',msg:'Please provide company name'});
			return false;
			}
		else if( $('#country').val() == 'Select Your Country'  ){
			createOverlay({title:'Required Field Missing',msg:'Please select country'});
			return false;
			}
		createOverlay({title:'Please Wait',msg:'Processing your request.'});
		new cAjaxForm({
			form:'#registerForm',
			beforeSend:function(){},
			onSuccess:function(m,status){
				if(m == 'success') window.location = basePath+destination;
				else createOverlay({title:'Oops',msg:m});
				}
			});
		}
	}


//file uploader functions
var anim = ['|','/','-','\\'];
var pos = 0;
var interval;
//function to cancel upload in progress:
var isUploading = false;
function cancelUpload(){
	clearInterval( interval );
	$('#uploadProgress').css({display: 'none'});
	$('#iframeUpload').css({display: 'block'});
	$('#iframeUpload')[0].src = $('#iframeUpload')[0].src; //refresh the iframe
	$('#progressBar').css({width: '0%'});
	isUploading = false;
	}
var getUploadProgress = function(){
	clearInterval( interval );
	new cAjaxRequest({
		url:progressURL,
		data:'',
		onSuccess:function(msg,status){
			var a = anim[pos++];
			if( pos > 3 ) pos = 0;
			$('#progressStatus').html(msg + ( parseFloat(msg) ? (' %&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+a) : '' ));
			if( parseInt(msg) > 0 )
				$('#progressBar').css({width: parseInt(msg)+1+'%'});
			else if( msg.search('file') >= 0 ) $('progressBar').css({width: '100%'});
			else if( msg == 'maximum upload size has been exceeded' ){
				cancelUpload();
				createOverlay({title:'Oops',msg:'maximum file size exeeded'});
				}
			else $('#progressBar').css({width: '0%'});
			if( $('#iframeUpload')[0].style.display == "none" ){
				interval = setInterval(getUploadProgress, 20 ); //call again to get next status
				isUploading = true;
				if( $('#jContinue').length ){
					$('#jContinue').css({display: 'none'});
					$('#jisUploading').css({display: 'block'});
					}
				}
			else{
				cancelUpload();
				isUploading = false;
				if( $('#jContinue').length ){
					$('#jContinue').css({display: 'block'});
					$('#jisUploading').css({display: 'none'});
					}
				}
			}
		});
	}
	
//function to delete single upload:
function deleteUpload(id){
	if( confirm("Are you sure to delete selected file?") ){
		new cAjaxRequest({
			url:deluploadURL+'?delete='+id,
			data:'',
			onSuccess:function(msg,status){
				if( msg == 'success' )
					$('#fileLink'+id).remove();
				else
					createOverlay({title:'Oops',msg:msg});
				}
			});
		}
	}

//validate and process order
function serializeRequest(formName,successurl){
	var myData = new Object;
	myData.formName = formName;
	myData.successurl = successurl;
	createOverlay({title:'Please Wait',msg:'Processing your request.'});
	new cAjaxForm({
		form:myData.formName,
		beforeSend:function(){},
		onSuccess:function(m,status){
			if(m == 'success') window.location = myData.successurl;
			else createOverlay({title:'Oops',msg:m});
			}
		});
	}

function professional(){
	var itm = $('.options');
	for( var i = 0; i<itm.length; i++)
		for( var j = 0; j<professionalPackage.length; j++) 
			if( professionalPackage[j] == itm[i].id ) itm[i].checked = 'checked';
	caculateTotal();
	}
function standard(){
	var itm = $('.options');
	for( var i = 0; i<itm.length; i++)
		for( var j = 0; j<standardPackage.length; j++)
			if( standardPackage[j] == itm[i].id ) itm[i].checked = 'checked';
	caculateTotal();
	}

//function to calculate interactive radio button
function caculateTotal(){
	var groups =  $('.optionGroup');
	var total = 0;
	//get which base is selected and get the base price
	var baseOption = $('.rdiobtn');
	var bp = 0;
	for(var i = 0; i<baseOption.length; i++ ){
		if( baseOption[i].checked ){
			if( baseOption[i].value == 'Standard'){
				$('#sPackage').html('Standard Package');
				total = bStandard;
				bp = bsInitial;
				}
			else{
				$('#sPackage').html('Professional Package');
				total = bProfessional;
				bp = bpInitial;
				}
			}
		}
	var tt = 0;
	for(var i = 0; i<groups.length; i++){
		var dd = groups[i].getElementsByTagName('p');
		// get the selected radio value
		var chkv = 0;
		for(var j=0; j<dd.length; j++){
			var cc = dd[j].getElementsByTagName('input')[0];
			if( cc.checked ){
				chkv = dd[j].getElementsByTagName('input')[1].value;
				}
			}
		for( var j=0; j<dd.length; j++){
			var c = dd[j].getElementsByTagName('input')[0];
			var d = dd[j].getElementsByTagName('input')[1];	//hidden input
			var e = dd[j].getElementsByTagName('strong')[0];
			var tot = parseFloat(d.value) - parseFloat(chkv);
			var sign = '';
			if( tot >0 )
				sign = "+";
			else if( tot <0 )
				sign = '-';
			if(c.checked){
				//e.update('selected');
				e.innerHTML = 'selected';
				tt += parseFloat(chkv);
				}
			else
				//e.update(sign + '$ ' + Math.abs(tot));
				e.innerHTML = sign + '$ ' + Math.abs(tot);
			}
		}
	var optionsPrice = tt - bp;
    //var perPageTotal = total+ optionsPrice;
	var perPageTotal = total;
	var priPages = $('#pages').val();
	var subPages = $('#subPages').val();
	var sPDiscount = 1-(subPageDiscount/100.0);
    //var overallTotal = perPageTotal*priPages + perPageTotal*subPages*sPDiscount;
	var overallTotal = perPageTotal*priPages + perPageTotal*subPages*sPDiscount +optionsPrice;
	$('#priPageExpression').html(priPages +' page(s) x $' + total);
	$('#subPageExpression').html(subPages +' page(s) x $' + total*sPDiscount);
	$('#priPageTotal').html('$' + priPages*total);
	$('#subPageTotal').html('$' + subPages*total*sPDiscount);
    //$('#optionTotal').html('$ ' + (optionsPrice * priPages + optionsPrice*subPages*sPDiscount));
	$('#optionTotal').html('$ ' + (optionsPrice));
	$('#totalPrice').html('$ '+ overallTotal);
	}
	
//update the values of other resource
function updateValues(val,sl){
	if( sl == 1 ){
		$('#slPrimaryUpdate').html(val+' page'+((val>1)?'s':''));
		$('#pages').val(val);
		caculateTotal();
		}
	else if( sl == 2 ){
		$('#slSecondaryUpdate').html(val+' page'+((val>1)?'s':''));
		$('#subPages').val(val);
		caculateTotal();
		}
	}
function changeSlide(theSlide,sign){
	var value = $(theSlide).slider('option', 'value');
	var mx = $(theSlide).slider('option', 'max');
	var mn = $(theSlide).slider('option', 'min');
	var step = $(theSlide).slider('option', 'step');
	if( sign == '+' ) value += ((value + step)<=mx)?step:0;
	else value -= ((value - step)>=mn)?step:0;
	$(theSlide).slider('option', 'value', value );
	if( theSlide == '#sliderPrimaryPage' ) updateValues(value,1);
	else updateValues(value,2);
	}
	
/*concept to psd options*/

function updateValues2(val,sl){
	if( sl == 1 ){
		$('#slLogoIdeasUpdate').html(val+' logo'+((val>1)?'s':''));
		$('#numLogo').val(val);
		caculateTotalc2psd();
		}
	else if( sl == 2 ){
		$('#slHomeIdeaUpdate').html(val+' page'+((val>1)?'s':''));
		$('#numHomePSD').val(val);
		caculateTotalc2psd();
		}
	else if( sl == 3 ){
		$('#slSubPageIdeaUpdate').html(val+' page'+((val>1)?'s':''));
		$('#numSubPSD').val(val);
		caculateTotalc2psd();
		}
	}
function changeSlide2(theSlide,sign){
	var value = $(theSlide).slider('option', 'value');
	var mx = $(theSlide).slider('option', 'max');
	var mn = $(theSlide).slider('option', 'min');
	var step = $(theSlide).slider('option', 'step');
	if( sign == '+' ) value += ((value + step)<=mx)?step:0;
	else value -= ((value - step)>=mn)?step:0;
	$(theSlide).slider('option', 'value', value );
	if( theSlide == '#sliderLogoIdeas' ) updateValues2(value,1);
	else if( theSlide == '#sliderHomeIdea' ) updateValues2(value,2);
	else updateValues2(value,3);
	}

function logoSelect(){
	$('#logoCont').show();
	$('#psdCont').hide();
	$('#siteOnlyCont').hide();
	$('#logoOnlyCont').show();
	
	$('#logoPriceOnly').show();
	$('#homePriceOnly').hide();
	caculateTotalc2psd();
	}
function psdSelect(){
	$('#logoCont').hide();
	$('#psdCont').show();
	$('#siteOnlyCont').show();
	$('#logoOnlyCont').hide();
	
	$('#logoPriceOnly').hide();
	$('#homePriceOnly').show();
	caculateTotalc2psd();
	}
function bothSelect(){
	$('#logoCont').show();
	$('#psdCont').show();
	$('#siteOnlyCont').show();
	$('#logoOnlyCont').show();
	
	$('#logoPriceOnly').show();
	$('#homePriceOnly').show();
	caculateTotalc2psd();
	}
	
function caculateTotalc2psd(){
	var nLogo = $('#numLogo').val();
	var nHomePSD = $('#numHomePSD').val();
	var nSubPSD = $('#numSubPSD').val();
	var logoTotal = c2psdLogoPrice * nLogo;
	
	var basePackage = $('.rdiobtn');
	var overallTotal = 0;
	for(var i = 0; i<basePackage.length; i++ ){
		if( basePackage[i].checked ){
			if( basePackage[i].value == 'logo' || basePackage[i].value == 'both'){
				overallTotal = logoTotal;
				$('#logoToal').html('$' + logoTotal);
				$('#logoExpression').html( nLogo + ' Logos x $' + c2psdLogoPrice);
				}
				
			if( basePackage[i].value == 'psd' || basePackage[i].value == 'both'){
				if( nHomePSD > 1 ){
					homePSDTotal = c2psdPagePrice + c2psdPagePrice2* (nHomePSD-1);
					//update equation
					$('#homePageExpression').html('1 PSD x $' + c2psdPagePrice + ' + ' + (nHomePSD-1) +' PSDs x $' + c2psdPagePrice2);
					}
				else{
					homePSDTotal = c2psdPagePrice * nHomePSD;
					//update equation
					$('#homePageExpression').html(nHomePSD + 'PSDs x $' + c2psdPagePrice);
					}
					
				if( nSubPSD > 1 ){
					subPSDTotal = c2psdSubPagePrice + c2psdSubPagePrice2* (nSubPSD-1);
					//update subpage equation
					$('#subPageExpression').html('1 PSD x $' + c2psdSubPagePrice + ' + ' + (nSubPSD-1) +' PSDs x $' + c2psdSubPagePrice2);
					}
				else{
					subPSDTotal = c2psdSubPagePrice * nSubPSD;
					//update subpage equation
					$('#subPageExpression').html(nSubPSD + 'PSDs x $' + c2psdSubPagePrice);
					}
				$('#homePageTotal').html('$' + homePSDTotal);
				$('#subPageTotal').html('$' + subPSDTotal);
				overallTotal += homePSDTotal + subPSDTotal;
				}
			}
		}
	$('#totalPrice').html('$' + overallTotal);
	}
