/* Snap general errors
---------------------------------------------------------------- */

window.onerror = function(){

	return true;

}


/* Functions in download cellphone tune
---------------------------------------------------------------- */

function validatePhone(f){

	// Declare variable
	var execute = true;
	
	if(f.mobile.value==''){
		alert('Please input your cellphone number!');
		f.mobile.focus();
		execute = false;
	}
	
	// Return validate
	return execute;
}

function markupField(f){

	// Toogle click event
	if(f.value==''){
		f.focus();
	}else if(f.value!=''){
		f.select();
	}

}

/* Toogle text in search field functions
---------------------------------------------------------------- */

function focusField(f,txt){

	// Declare variable
	var field = document.getElementById(f.id);
	
	// Clean field, markup if text is not the same as original
	if(field.value==txt){
		field.value = '';
	}else{
		field.select();
	}

}

function blurField(f,txt){

	// Declare variable
	var field = document.getElementById(f.id);
	
	// Restore field if not text is original
	if(field.value==''){
		field.value = txt;
	}

}

/* Content flash function
---------------------------------------------------------------- */

var opaTimer;

function showContentMenu(){
	
	// Declare variable
	var contentmenu = document.getElementById('contentmenu');
	var layer1 = document.getElementById('layer1');
	var layer2 = document.getElementById('layer2');
	var layerSet = false;

	// Set content menu (text) backward
	layer1.style.position = 'relative';
	layer1.style.zIndex = '9';

	// Set content menu (flash) forward
	layer2.style.position = 'relative';
	layer2.style.zIndex = '10';
	layerSet = true;
	
	// Make menu transparent
	//contentmenu.className = 'contentmenu opacity';

	// Set to full opacity
	changeOpac(10,'contentmenu');
	
	// Clear timer
	clearTimeout(opaTimer);

}

function hideContentMenu(){
	
	// Declare variable
	var contentmenu = document.getElementById('contentmenu');
	var layer1 = document.getElementById('layer1');
	var layer2 = document.getElementById('layer2');
	var layerSet = false;

	// Set content menu (flash) forward
	layer1.style.position = 'relative';
	layer1.style.zIndex = '10';

	// Set content menu (text) backward
	layer2.style.position = 'relative';
	layer2.style.zIndex = '9';
	layerSet = true;
	
	// Call function to make content menu visible
	opaTimer = setTimeout("restoreOpacity()",500);

}

function restoreOpacity(){

	opacity('contentmenu', 10, 100, 800);

	// Declare variable
	var contentmenu = document.getElementById('contentmenu');
	
	// Make menu transparent
	contentmenu.className = 'contentmenu';

}


/* ########################################################### */

function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

	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 restoreOpacityOLD(){

	// Declare variable
	var contentmenu = document.getElementById('contentmenu');
	
	// Make menu transparent
	contentmenu.className = 'contentmenu';

}

/* Link function
---------------------------------------------------------------- */

function goToUrl(popup,url){

	// If popup is true, then open in popup, else open normal
	if(url){
		if(popup){
			window.open(url);
		}else{
			location.href = url;
		}
	}

}

/* Show login
---------------------------------------------------------------- */

function showLogin(){

	// Declare variable
	var element = document.getElementById('login_box');
	
	if(element){
		if(element.style.display=='none'){
			element.style.display='block';
		}else{
			element.style.display='none';
		}
	}

}

/* Steps functions
---------------------------------------------------------------- */

function setStep(f,num){

	// Declare variable
	var element = f.id;
	
	if(!element){
		element = f;
	}

	// Reset all
	for(t=1;t<5;t+=1){
		if(document.getElementById('step'+t)){
			
			// Reset all items
			document.getElementById('step'+t).className = 'step'+t;
			document.getElementById('step'+t+'_1').className = 'num';
			document.getElementById('step'+t+'_2').className = 'arr';
			document.getElementById('step'+t+'_3').className = 'label';
			document.getElementById('step'+t+'_text').style.display = 'none';
			
		}
	}
	
	// Set current clicked
	document.getElementById(element).className = element + ' abort';
	document.getElementById(element+'_1').className = 'num_sel';
	document.getElementById(element+'_2').className = 'arr_sel';
	document.getElementById(element+'_3').className = 'label_sel';
	document.getElementById(element+'_text').style.display = 'block';
	
	// Update current step value
	document.getElementById('curStep').value = num;
	
	// Call funcSteps
	funcSteps();
	
}

function funcSteps(){

	// Declare variables
	var prev = document.getElementById('steps_prev');
	var next = document.getElementById('steps_next');
	var stepsCurrent = document.getElementById('curStep').value;
	var stepsAll = document.getElementById('allSteps').value;
	
	// Toogle prev step link
	if(stepsCurrent=='1'){
		prev.className = 'prev_dis';
	}else{
		prev.className = '';
	}
	
	// Toogle next step link
	if(stepsCurrent==stepsAll){
		next.className = 'next_dis';
	}else{
		next.className = '';
	}

}

function stepsGo(action){

	// Declare variables
	var stepsCurrent = document.getElementById('curStep').value;
	var stepsAll = document.getElementById('allSteps').value;

	if(action=='prev'){

		if(stepsCurrent!=1){

			// Next step is back
			nextStep = parseInt(stepsCurrent) - 1;

			// Run function (next step back)
			setStep('step'+nextStep,nextStep);
			
		}
		
	}
	
	if(action=='next'){

		if(stepsCurrent!=stepsAll){

			// Next step is forward
			nextStep = parseInt(stepsCurrent) + 1;
			
			// Run function (next step back)
			setStep('step'+nextStep,nextStep);
			
		}
		
	}

}

/* Bookmark function
---------------------------------------------------------------- */

function bookmark(parTitle,parUrl){

	// Title and url
    var title = parTitle;
    var url = parUrl;

	if(title=='' || url==''){

		// Error: No url or title has been specified
		//alert('Error!')

	} else {

		// Mozilla
		if (window.sidebar) window.sidebar.addPanel(title, url,"");
	
		// Opera
		else if(window.opera && window.print){
			var mbm = document.createElement('a');
			mbm.setAttribute('rel','sidebar');
			mbm.setAttribute('href',url);
			mbm.setAttribute('title',title);
			mbm.click();
		}
	
		// IE
		else if(document.all) window.external.AddFavorite(url, title);

	}

}

/* Quick guide functions
---------------------------------------------------------------- */

// Timer variable
var timer;
var dontclose;
var parsedCurrentId;
var currentToogledId;
var totalDropdowns;

function ToogleFilter(string,parId,parDropDown){
	
	// Parsed variables
	var elementId = string.id;
	var currentId = parId;
	var currentToogledId = parId;
	
	if(document.getElementById(elementId).className!='text_disabled'){
	
		// Close other drop downs
		closeOtherDrops();
		
		// Update total drop downs
		totalDropdowns = parDropDown;
		
		// Show or hide filter drop down
		if(document.getElementById('filter'+currentId).className=='filter-None'){
			document.getElementById('filter'+currentId).className='filter-Block';
		} else {
			document.getElementById('filter'+currentId).className='filter-None';
		}
		
		// Hide blur
		document.getElementById(elementId).blur();
		
	}
}

function closeOtherDrops(){

	// Find number of open drop downs
	var currentNumItems = document.getElementsByTagName('DIV');
	var currentNum = currentNumItems.length;
	var countCurrentNum;
	
	for(t=0;t<currentNum;t+=1){
		if(currentNumItems[t].className=='filter-None' || currentNumItems[t].className=='filter-Block'){
			currentNumItems[t].className = 'filter-None';
		}
		
	}
}

function FilterOver(parId){

	// Parsed variable
	var currentId = parId;

	// Show the filter
	document.getElementById('filter'+currentId).className='filter-Block';
	
	// Clear timer
	clearTimeout(timer);
	
	// set var
	dontclose = true;
}

function FilterOut(parId){

	// Parsed variable
	var currentId = parId;

	// Tich the timer
	timer = setTimeout("HideFilterOut()",500);
	
	// set var
	dontclose = false;
	
	// Set current id
	parsedCurrentId = currentId;
}

function HideFilterOut(){

	// Show the filter
	if(!dontclose){
		document.getElementById('filter'+parsedCurrentId).className='filter-None';
	}
}

function SetFilterList(string,action,id,url,other){
	
	// Declare variables
	var text = string.innerHTML;
	var curId = id;
	
	// Type 1: Show related children
	if(action=='1'){
	
		// Set text
		document.getElementById('filterlabel'+curId).innerHTML = text;
		
		// Update label
		document.getElementById('filterlabel2').innerHTML = other;
		
		// Hide all departments
		var items = document.getElementsByTagName('UL');
		var count = items.length;
		
		for(var t=0;t<count;t+=1){
			if(items[t].className=='department_lists'){
				items[t].style.display = 'none';
			}
		}
		
		// show department
		document.getElementById('list'+url).style.display = 'block';
		
		// Enable drop down
		document.getElementById('filterlabel2').className = 'text';
		
	}
	
	// Type 2: Send to location
	if(action=='2'){
	
		// Set text
		document.getElementById('filterlabel'+curId).innerHTML = text;
		
		// Send to location
		location.href = url;
	
	}
	
	// Hide the selectbox after select
	document.getElementById('filter'+curId).className='filter-None';
	
}

/* Open / close container
---------------------------------------------------------------- */

function showContainer(f){

	// Declare variable
	var element = document.getElementById(f.id);
	var child = document.getElementById(f.id+'_container');
	
	if(child){
		if(child.style.display=='block'){
			child.style.display = 'none';
			element.className = 'box_minimized';
		}else{
			child.style.display = 'block';
			element.className = 'box_maximized';
		}
	}

}

function forceShow(f){

	// Declare variable
	var element = document.getElementById(f);
	var child = document.getElementById(f+'_container');
	
	if(child){
		child.style.display = 'block';
		element.className = 'box_maximized';
	}

}