// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;
	
	var subType = "O";	

function _setFrmAction(btn,f,url) {
	if(btn.id == 'submit_frm') {
		subType = "P";
	}
	else {
		subType = "O";
	}
	f.action = url;
}

function validateForm() {
	
	 var refEmail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/ ;
     // var refZip= /^\d{5}$|^\d{5}-\d{4}$/ ;
	 var refZip = /^-?\d+$/ ;
	 //var refPhone = /^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/;
	 var refPhone = /^-?\d+$/ ;
	 var refLink = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/; 
	
	document.getElementById('error-message').style.display = 'none';
	var err = false;
	var errStr = '';
	var f = 'psd_order-form';
	
	if(document.getElementById('name').value=='') {		
		errStr = errStr + errName +'<br />';
		err = true;
	}
	if(document.getElementById('address').value=='') {
		errStr = errStr + errAddr +'<br />';
		err = true;
	}
	if (document.getElementById('zip').value == '') {
		errStr = errStr + errZip +'<br />';
		err = true;
	}
	else {
		if (document.getElementById('zip').value.search(refZip) == -1) {
			errStr = errStr + errZip +'<br/>';
			err = true;
		}
		else {
			err = false;
		}
	}
	if(document.getElementById('state').value=='') {
		errStr = errStr + errState +'<br />';
		err = true;
	}
	
	if(document.getElementById('phone').value == '') {
		errStr = errStr + errPhone +'<br />';
		err = true;
	}
	else {
		
		if(checkInternationalPhone(document.getElementById('phone').value) == false) {
			errStr = errStr + errPhone +'<br />';
			err = true;
		}
		else {
			err = false;
		}
	}
	if(document.getElementById('email').value == '') {
		errStr = errStr + errEmail +'<br />';
		err = true;
	}
	else {
		if (document.getElementById('email').value.search(refEmail) == -1) {
				errStr = errStr +  errEmail +'<br />';
				err = true;
			}
			else {
				
				err = false;
			}
	}
	if(document.getElementById('psdfile').value=='' && document.getElementById('psdlink').value=='') {
		errStr = errStr + errPsd +'<br />';
		err = true;
	}     
	 
	if(document.getElementById('comments').value=='') {
		errStr = errStr + errComment+ '<br />';
		err = true;
	}
	if(subType == "P") {
		if(document.getElementById('vereinbarung').checked == false) {
			errStr = errStr + 'Bitte stimmen Sie dem Vertrag zu.<br />';
			err = true;
		}
	}
	if(err) {		
		document.getElementById('error-message').innerHTML = errStr;
		document.getElementById('error-message').style.display = 'block';
		document.getElementById('second-step').style.display = 'block';
		document.getElementById('first-step').style.display = 'none';
		return false;
	} 
	return errStr;
	
}

 function in_array( what, where ){

      var a=false;
  	  for(var i=0;i<where.length;i++){
   	  	if(what == where[i]){
	    	a=true;
	        break;
	     }
      }
     return a;
  }
	  
function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function trim(s)
{    
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
function stripCharsInBag(s, bag)
{   
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
	var bracket=3;
	strPhone=trim(strPhone);
	if(strPhone.indexOf("+")>1) err = true;
	if(strPhone.indexOf("-")!=-1)bracket=bracket+1;
	if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket) err = true;
	var brchr=strPhone.indexOf("(");
	if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")") err = true;
	if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1) err = true;
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function reloadPrice(ctrl) {
	
	var thisPrice = 0;
	
	if(ctrl.name == 'template') {
		
		var str = 'template-price-'+ctrl.value;
		
		var strTitle = 'select-template-'+ctrl.value;
		var strName = document.getElementById(strTitle).innerHTML;
		firstPos = strName.lastIndexOf(">");
		lastPos = strName.length;
		var strTemplate = strName.substr(firstPos+1,lastPos);
		document.getElementById('selectTemp').innerHTML = '+'+ strTemplate ; 
		
		
		document.getElementById(str).innerHTML = incLbl;
		thisPrice = parseInt(tempArr[ctrl.value]);
		
		document.getElementById('template_price').innerHTML = round_decimal(thisPrice,2) + ' ' + curLbl;
		for(var i=0; i < document.forms[0].template.length; i++) {
			var str2 = 'template-price-'+document.forms[0].template[i].value;
			var price = parseInt(tempArr[document.forms[0].template[i].value]);
			if(price != thisPrice) {
				var upPrice = price - thisPrice;
				
				if (upPrice > 0) {
					document.getElementById(str2).innerHTML = '+' + upPrice + ' ' + curLbl;
				}
				else {
					document.getElementById(str2).innerHTML = upPrice + ' ' + curLbl;
				}
			}
		}
		
		
	}
	else if(ctrl.name == 'content') {
			
			var str = 'content-price-'+ctrl.value;
			
			var strTitle = 'select-content-'+ctrl.value;
			var strName = document.getElementById(strTitle).innerHTML;
			firstPos = strName.lastIndexOf(">");
			lastPos = strName.length;
			var strTemplate = strName.substr(firstPos+1,lastPos);
			document.getElementById('selectContent').innerHTML = '+'+ strTemplate ; 
			
			
			document.getElementById(str).innerHTML = incLbl;
			thisPrice = parseInt(contentArr[ctrl.value]);
			
			document.getElementById('content_price').innerHTML = round_decimal(thisPrice,2) + ' ' + curLbl;
			for(var i=0; i < document.forms[0].content.length; i++) {
				var str2 = 'content-price-'+document.forms[0].content[i].value;
				var price = parseInt(contentArr[document.forms[0].content[i].value]);
				if(price != thisPrice) {
					var upPrice = price - thisPrice;
					
					if (upPrice > 0) {
						document.getElementById(str2).innerHTML = '+' + upPrice + ' ' + curLbl;
					}
					else {
						document.getElementById(str2).innerHTML = upPrice + ' ' + curLbl;
					}
				}
			}
			
			
		}
	else if(ctrl.name == 'templavoila') {
		var str = 'templavoila-price-'+ctrl.value;
		
		var strTitle = 'select-templavoila-'+ctrl.value;
		var strName = document.getElementById(strTitle).innerHTML;
		firstPos = strName.lastIndexOf(">");
		lastPos = strName.length;
		var strTemplavoila = strName.substr(firstPos+1,lastPos);
		document.getElementById('selectTemplavoila').innerHTML = '+'+ strTemplavoila ;
		
		document.getElementById(str).innerHTML = incLbl;
		thisPrice = parseInt(templavoilaArr[ctrl.value]);
		document.getElementById('templavoila_price').innerHTML = round_decimal(thisPrice,2) + ' ' + curLbl;
		for(var i=0; i < document.forms[0].templavoila.length; i++) {
			var str2 = 'templavoila-price-'+document.forms[0].templavoila[i].value;
			var price = parseInt(templavoilaArr[document.forms[0].templavoila[i].value]);
			if(price != thisPrice) {
				var upPrice = price - thisPrice;
				if (upPrice > 0) {
					document.getElementById(str2).innerHTML = '+' + upPrice + ' ' + curLbl;
				}
				else {
					document.getElementById(str2).innerHTML = upPrice + ' ' + curLbl;
				}
			}
		}
	}
	else if(ctrl.name == 'design') {
		var str = 'design-price-'+ctrl.value;
		
		var strTitle = 'select-design-'+ctrl.value;
		var strName = document.getElementById(strTitle).innerHTML;
		firstPos = strName.lastIndexOf(">");
		lastPos = strName.length;
		var strLevel = strName.substr(firstPos+1,lastPos);
		document.getElementById('selectDesign').innerHTML = '+'+ strLevel ;
		
		document.getElementById(str).innerHTML = incLbl;
		
		thisPrice = parseInt(designArr[ctrl.value]);
		document.getElementById('design_price').innerHTML = round_decimal(thisPrice,2) + ' ' + curLbl;
		for(var i=0; i < document.forms[0].design.length; i++) {
			var str2 = 'design-price-'+document.forms[0].design[i].value;
			var price = parseInt(designArr[document.forms[0].design[i].value]);
			if(price != thisPrice) {
				var upPrice = price - thisPrice;
				if (upPrice > 0) {
					document.getElementById(str2).innerHTML = '+' + upPrice + ' ' + curLbl;
					
				}
				else {
					document.getElementById(str2).innerHTML = upPrice + ' ' + curLbl;
					
				}
			}
		}
	}
	else if(ctrl.name == 'install') {
		var str = 'install-price-'+ctrl.value;
		
		var strTitle = 'select-install-'+ctrl.value;
		var strName = document.getElementById(strTitle).innerHTML;
		firstPos = strName.lastIndexOf(">");
		lastPos = strName.length;
		var strInstall = strName.substr(firstPos+1,lastPos);
		document.getElementById('selectServer').innerHTML = '+'+ strInstall ;
		
		document.getElementById(str).innerHTML = incLbl;
		thisPrice = parseInt(serverArr[ctrl.value]);
		document.getElementById('install_price').innerHTML = round_decimal(thisPrice,2) + ' ' + curLbl;
		for(var i=0; i < document.forms[0].install.length; i++) {
			var str2 = 'install-price-'+document.forms[0].install[i].value;
			var price = parseInt(serverArr[document.forms[0].install[i].value]);
			if(price != thisPrice) {
				var upPrice = price - thisPrice;
				if (upPrice > 0) {
					document.getElementById(str2).innerHTML = '+' + upPrice + ' ' + curLbl;
					
				}
				else {
					document.getElementById(str2).innerHTML = upPrice + ' ' + curLbl;
					
				}
			}
		}
	}
	else if(ctrl.name == 'ext') {
		
		var str = 'ext-price-'+ctrl.value;
		var strTitle = 'select-ext-'+ctrl.value;
		var strName = document.getElementById(strTitle).innerHTML;
		
		firstPos = strName.lastIndexOf(">");
		lastPos = strName.length;
		
		
		thisPrice = parseInt(extArr[ctrl.value]);
	} 
	else if(ctrl.name == 'support') {
		var str = 'support-price-'+ctrl.value;
		
		var strTitle = 'select-support-'+ctrl.value;
		var strName = document.getElementById(strTitle).innerHTML;
		firstPos = strName.lastIndexOf(">");
		lastPos = strName.length;
		var strSupport = strName.substr(firstPos+1,lastPos);
		
		document.getElementById(str).innerHTML = incLbl;
		thisPrice = parseInt(supportArr[ctrl.value]);
		
	}
	recalculate();
}

function recalculate() {
	var extAmt = 0;
	var supportAmt = 0;
	var extList = '';
	var supportList = '';
	var nwpackSum = packSum;
	//go thru template
	for (var i = 0; i < document.forms[0].template.length; i++) {
		if(document.forms[0].template[i].checked) {
			var templateList = document.forms[0].template[i].value;
			nwpackSum = nwpackSum + tempArr[document.forms[0].template[i].value];
			
		
		}
	}
	//go thru content
	for (var i = 0; i < document.forms[0].content.length; i++) {
		if(document.forms[0].content[i].checked) {
			var contentList = document.forms[0].content[i].value;
			nwpackSum = nwpackSum+ contentArr[document.forms[0].content[i].value];
		}
	}
	
	//go thru templavoila
	for (var i = 0; i < document.forms[0].templavoila.length; i++) {
		if(document.forms[0].templavoila[i].checked) {
			var templavoilaList = document.forms[0].templavoila[i].value;
			nwpackSum = nwpackSum+ templavoilaArr[document.forms[0].templavoila[i].value];
		}
	}
	//go thru DESIGN
	for (var i = 0; i < document.forms[0].design.length; i++) {
		if(document.forms[0].design[i].checked) {
			var designList = document.forms[0].design[i].value;
			nwpackSum = nwpackSum + designArr[document.forms[0].design[i].value];
		}
	}
	//server
	for (var i = 0; i < document.forms[0].install.length; i++) {
		if(document.forms[0].install[i].checked) {
			var installList = document.forms[0].install[i].value;
			nwpackSum = nwpackSum+ serverArr[document.forms[0].install[i].value];
		}
	}
	
	//support
	for (var i = 0; i < document.forms[0].support.length; i++) {
		if(document.forms[0].support[i].checked) {
			nwpackSum = nwpackSum+ supportArr[document.forms[0].support[i].value];
			supportAmt = supportAmt + supportArr[document.forms[0].support[i].value];
			if(supportList != '')
				supportList = document.forms[0].support[i].value + ',' + supportList;
			else 
				supportList = document.forms[0].support[i].value;
				
		} 
		else {
			document.getElementById('support-price-'+document.forms[0].support[i].value).innerHTML = supportArr[document.forms[0].support[i].value]+ ' ' + curLbl;
		}
	}
	
	//extension
	for (var i = 0; i < document.forms[0].ext.length; i++) {
		if(document.forms[0].ext[i].checked) {
			document.getElementById('ext-price-'+document.forms[0].ext[i].value).innerHTML = incLbl;
			nwpackSum = nwpackSum+ extArr[document.forms[0].ext[i].value];
			extAmt = extAmt+extArr[document.forms[0].ext[i].value];
			if(extList != '')
				extList = document.forms[0].ext[i].value + ',' + extList; 
			else extList = document.forms[0].ext[i].value; 
			
		} 
		else {
			document.getElementById('ext-price-'+document.forms[0].ext[i].value).innerHTML = extArr[document.forms[0].ext[i].value]+ ' ' + curLbl;
		}
			
	}
	
	
    
	var nwTaxAmt = round_decimal(((nwpackSum*taxPercent)/100),2);
	
	var tax = (nwpackSum*taxPercent)/100;
	
	var nwTotal = round_decimal((parseFloat(nwpackSum)+tax),2);
	var discTotal = round_decimal(parseFloat(nwTotal)*0.9,2); 
	
	document.getElementById('select_template').value = templateList;
	document.getElementById('select_design').value = designList;
	document.getElementById('select_content').value = contentList;
	document.getElementById('select_install').value = installList;
	document.getElementById('select_templavoila').value = templavoilaList;
	
	document.getElementById('select_extension').value = extList;
	document.getElementById('select_support').value = supportList;
	document.getElementById('support_price').innerHTML = round_decimal(supportAmt,2) + ' ' + curLbl;
	document.getElementById('ext_price').innerHTML = round_decimal(extAmt,2) + ' ' + curLbl;
	document.getElementById('package_sum').value = round_decimal(nwpackSum,2);
	document.getElementById('tax_amt').value =nwTaxAmt.replace('.',',');
	document.getElementById('total_amt').value = nwTotal.replace('.',',');
	$('#disc_amt').val(discTotal);
	document.getElementById('gross').innerHTML = round_decimal(nwpackSum,2) +' '+curLbl;
	document.getElementById('vat').innerHTML =  nwTaxAmt + ' '+curLbl;
	document.getElementById('total').innerHTML =  nwTotal + ' '+curLbl;
	document.getElementById('total_2').innerHTML =  nwTotal + ' '+curLbl;
	document.getElementById('vat_2').innerHTML =  nwTaxAmt + ' '+curLbl;
	document.getElementById('gross_2').innerHTML = round_decimal(nwpackSum,2) +' '+curLbl;
	document.getElementById('total_3').innerHTML =  nwTotal + ' '+curLbl;
	$('#discount_3').html(discTotal);
}

function round_decimal(original,decimal_places) {
 var adj = Math.pow(10,decimal_places);
 var result=Math.round(original*adj)/adj;
 result = result.toFixed(2);
 
 result = result.replace('.',',');
 
 return result;
}

$(function(){
	$('#log1').html('<ol id="log"></ol>');
	$('#swfupload-control').swfupload({
		upload_url: "typo3conf/ext/netz_packages/pi1/ajax-upload.php",
		file_post_name: 'uploadfile',
		file_size_limit : "2048000",
		file_types : "*.jpg;*.png;*.gif;*.psd;*.html;*.htm;*.zip;*.rar;*.tar;*.gz;*.tgz;*.bz2",
		file_types_description : "Bild Dateien",
		//file_upload_limit : 20,
		flash_url : "fileadmin/templates/js/swfupload/swfupload.swf",
		button_image_url : 'fileadmin/templates/js/swfupload/wdp_buttons_upload_80x72.png',
		button_width : 80,
		button_height : 18,
		button_placeholder : $('#button')[0],
		debug: false
	})
		.bind('fileQueued', function(event, file){
			var listitem='<li id="'+file.id+'" >'+
				'Datei: <em>'+file.name+'</em> ('+Math.round(file.size/1024)+' KB) <span class="progressvalue"></span>'+
				'<div class="progressbar"><div class="progress"></div></div>'+
				'<p class="status">Pending</p>'+
				'<span class="cancel">&nbsp;</span>'+
				'</li>';
			$('#log').append(listitem);
			$('li#'+file.id+' .cancel').bind('click', function(){
				var swfu = $.swfupload.getInstance('#swfupload-control');
				swfu.cancelUpload(file.id);
				$('li#'+file.id).slideUp('fast');
			});
			// start the upload since it's queued
			$(this).swfupload('startUpload');
		})
		/*.bind('fileQueueError', function(event, file, errorCode, message){
			alert('Size of the file '+file.name+' is greater than limit');
		})*/
		.bind('fileDialogComplete', function(event, numFilesSelected, numFilesQueued){
			$('#queuestatus').html('Dateien ausgew&auml;hlt: '+numFilesSelected);
		})
		.bind('uploadStart', function(event, file){
			$('#log li#'+file.id).find('p.status').text('Hochladen...');
			$('#log li#'+file.id).find('span.progressvalue').text('0%');
			$('#log li#'+file.id).find('span.cancel').hide();
		})
		.bind('uploadProgress', function(event, file, bytesLoaded){
			//Show Progress
			var percentage=Math.round((bytesLoaded/file.size)*100);
			$('#log li#'+file.id).find('div.progress').css('width', percentage+'%');
			$('#log li#'+file.id).find('span.progressvalue').text(percentage+'%');
		})
		.bind('uploadSuccess', function(event, file, serverData){
			var item=$('#log li#'+file.id);
			item.find('div.progress').css('width', '100%');
			item.find('span.progressvalue').text('100%');
			//var pathtofile='<a href="uploads/'+file.name+'" target="_blank" >view &raquo;</a>';
			item.addClass('success').find('p.status').html('Geschehen');
			var rsp = serverData.split('|');
			$('#psdfile').val($('#psdfile').val() + (($('#psdfile').val() == "")?"":",") + rsp[1]);
		})
		.bind('uploadComplete', function(event, file){
			// upload has completed, try the next one in the queue
			$(this).swfupload('startUpload');
		})
	
});	
 

