//activate fields of custom code
function activateCustomValue (id_segment, no_cols){
	var elt_select = document.getElementById('order_code_'+id_segment);
	if (elt_select != undefined) {
		var selected_index = elt_select.selectedIndex;
		var selected_value = elt_select.options[selected_index].value;
		
		if (selected_value == '[CUSTOM]' || selected_value == '[custom]' || selected_value == '[Custom]') {
			var set_fields = false; //enable
		}
		else {
			var set_fields = true; //disable
		}
		
		var elt_name_bas = 'custom_'+id_segment+'_';
		for (var i=0; i<no_cols; i++){
			var elt_name = elt_name_bas+i;
			var elt = document.getElementById(elt_name);
			if (elt != undefined){
				elt.disabled = set_fields;
			}
		}
	}
	return true;
}

//---------------------------------------------------------
//---- podbarveni radku v tabulce ----
//pouze pro stary system obj. kodu - zruseni stareho systemu (na uzivatel. strankach) = zruseni teto fce
function setRow(theRow, theAction, theChangeColor){
	//    row -> exits
	if (typeof(theRow.style) == 'undefined') {
        return false;
    }
	// change color
    if (theAction == 'over'){
		theRow.style.backgroundColor =  theChangeColor; 
	}
	else if (theAction == 'out'){
		 if (theChangeColor != ''){
		 	 theRow.style.backgroundColor =  theChangeColor;
		 }
		else {
		 	theRow.style.backgroundColor = '';
		 }
	}
    return true;
}
//---------------------------------------------------------
//---- vymena obrazku po najeti mysi ----
// pouze pro vlajky (nelze pouzit hover v css)
function imgSwitch(obj, img, path){
	if (obj != undefined && img != ''){
		obj.src = path+img;
	}
    return true;
}
//---------------------------------------------------------
//---- skryti/odkryti elementu ----
function roll (id){
	var element = document.getElementById(id);
	if (element != undefined){
		if(element.style.display=="block" || element.style.display==""){
			element.style.display="none";
		}
		else{
			element.style.display="block";
		}
	}
	return true;
}
//---------------------------------------------------------
//---- skryti elementu ----
function hideElement (id){
	var element = document.getElementById(id);
	if (element != undefined){
		element.style.visibility="hidden";
		element.style.display="none";
	}
	return true;
}

//---------------------------------------------------------
//---- skryti/odkryti elementu ----
function showHideElt (id, display){
	var element = document.getElementById(id);
	if (element != undefined){
		element.style.display = display;
	}
	return true;
}

//---------------------------------------------------------
//---- change icons ----
function iconChange (theImg, theAction, thePath){
	
	if (thePath == undefined || thePath == '') {
		thePath = 'template/design/';
	}
	else {
		thePath += '/';
	}
	
	
	if (theImg == undefined) {
        return false;
    }
	
	if (theAction == 'asc-hover'){ 
		var img_src = 'arrow_up_hover.gif';
	}
	else if (theAction == 'asc'){ 
		var img_src = 'arrow_up.gif';
	}
	else if (theAction == 'desc-hover'){
		var img_src = 'arrow_down_hover.gif';
	}
	else if (theAction == 'desc'){
		var img_src = 'arrow_down.gif';
	}
	else if (theAction == 'no-hover'){
		var img_src = 'arrow_no_hover.gif';
	}
	else if (theAction == 'no'){
		var img_src = 'arrow_no.gif';
	}
	
	theImg.src = thePath+img_src;
	return true;
}

function iconHover (theImg, theAction, thePath){
	if (thePath == undefined || thePath == '') {
		thePath = 'template/design/';
	}
	else {
		thePath += '/';
	}
	
	if (theImg == undefined) {
        return false;
    }
	
	var original_img = theImg.src;
	var tmp_link = original_img.split('/');
	var tmp = tmp_link[tmp_link.length-1].split('.');
	
	if (tmp.length >= 2){
		if (theAction == 'hover'){
			var new_img = tmp[tmp.length-2]+'_hover'+'.'+tmp[tmp.length-1];
		} else {
			var new_img = tmp[tmp.length-2].replace ('_hover', '')+'.'+tmp[tmp.length-1];
		}
		
		theImg.src = thePath+new_img;
		return true;
	}
}
//---------------------------------------------------------
//---- skryti/odkryti radku tabulky ----
//---- u tabulek nutne vyuziti tbody - id elementu = <tbody id="id">
//---- skyje/odkryje primo <tbody> daneho id (a tim i vsechny radky <tr> bez znalosti jejich id)
function rollRows (id, img_id, img_name, thePath){
	if (thePath == undefined || thePath == '') {
		thePath = 'template/design/';
	}
	else {
		thePath += '/';
	}
	
	var element = document.getElementById(id);
	if (img_name != ''){
		var img = document.getElementById(img_id);
	}
	if (element != undefined){
		if(element.style.display==""){
			var set_row_visibility = "none";
			var set_img_src = thePath+img_name+'_open.gif';
		}
		else{
			var set_row_visibility = "";
			var set_img_src = thePath+img_name+'_close.gif';
		}
		
		element.style.display = set_row_visibility;
		if (img_id != ''){
			img.src = set_img_src;
		}
	}
	return true;
}

//---------------------------------------------------------
//---- skryti/odkryti radku tabulky - pouze pro list zaznamu (produkty) ----
//---- u tabulek nutne vyuziti tbody - id elementu = <tbody id="id">
//---- skyje/odkryje primo <tbody> daneho id (a tim i vsechny radky <tr> bez znalosti jejich id)
function rollRowsRecordList (id1, img_id, id2, img_name, thePath){
	if (thePath == undefined || thePath == '') {
		thePath = 'template/design/';
	}
	else {
		thePath += '/';
	}
	
	var element1 = document.getElementById(id1);
	if (id2 != ''){
		var element2 = document.getElementById(id2);
	}
	if (img_id != ''){
		var img = document.getElementById(img_id);
	}
	if (element1 != undefined){
		if(element1.style.display==""){
			var set_row_visibility = "none";
			var set_row2_visibility = "";
			var set_img_src = thePath+img_name+'_close.gif';
		}
		else{
			var set_row_visibility = "";
			var set_row2_visibility = "none";
			var set_img_src = thePath+img_name+'_open.gif';
		}
		element1.style.display = set_row_visibility;
		
		if (element2 != undefined && element2 != null){
			element2.style.display = set_row2_visibility;
		}
		
		if (img != undefined && img != null){
			img.src = set_img_src;
		}
	}
	return true;
}

//---------------------------------------------------------
//---- nastaveni obj kodu ----
function setOrderCode (id_parameter, id_value, elt_type){
	if (id_parameter != ''){ 
		var id_parameter = id_parameter.split(';');
	}
	
	if (id_value != ''){
		var id_value = id_value.split(';');
	}
	
	if (id_parameter.length == id_value.length){
		for (var i=0; i<id_parameter.length; i++){
			var parameter = id_parameter[i];
			var value = id_value[i];
			var elt = document.getElementsByName('order_code['+parameter+']['+elt_type+']');
			if (elt.length == 1){  
				elt[0].value = value;
			}
		}
	}
	
	markOrderValue (id_parameter, id_value);
	return true;
}
//---------------------------------------------------------
//---- nastaveni varianty ----
function setVariation (id_product, variations){
	if (variations != ''){ 
		var variations = variations.split(',');
	}
	var elt = document.getElementsByName('order_code[0][product_id]');
	//check if there is element
	if (elt.length == 1){
		//check if element if selectbox
		if (elt[0].tagName == 'SELECT'){
			var this_value = elt[0].value;
			if (variations.length == 1){
				var new_value = id_product+'-'+variations[0];
				elt[0].value = new_value;
				markOrderValue ('0',new_value);
			}else if (variations.length > 1){
				var select_change = true;
				var selected_index = elt[0].selectedIndex;
				var selected_value = elt[0].options[selected_index].value;
				//try to find selected variation in list of allowed var.
				for (i=0;i<=variations.length;i++){
					if (selected_value == id_product+'-'+variations[i]){
						//found
						var select_change = false;
						break;
					}
				}
				//not found
				if (select_change == true){
					var new_value = id_product+'-'+variations[0];
					elt[0].value = new_value;
					markOrderValue ('0',new_value);
				}
			}
		}
		else {
			var new_value = elt[0].value;
			markOrderValue ('0',new_value);
		}
	}
	return true;
}
//---------------------------------------------------------
//---- odstraneni warningu pri zmene kombinace/hodnoty obj. kodu ----
function removeWarning (){
	var elt = document.getElementById('cart-info');
	if (elt != undefined) {
		elt.style.display="none";
	}
	return true;
}
//---------------------------------------------------------
//---- nastaveni zvyrazneni hodnoty v legende obj. kodu ----
/*---- 	id tbody - nastaveni vsech tr - radku tabulky na standardni css class
		id tr - tento/tyto radky se nastavi na vybrany css class ---- */ 
function markOrderValue (id_tbody, id_tr){
	id_tbody = id_tbody.toString();
	id_tr = id_tr.toString();
	
	if (id_tbody != ''){
		var id_tbody = id_tbody.split(';');
	}
	
	if (id_tr != ''){
		var id_tr = id_tr.split(';');
	}
	
	if (id_tbody.length == id_tr.length){ 
		for (var i=0; i<id_tbody.length; i++){
			var element = document.getElementById('legend-row-'+id_tbody[i]);
			if (element != undefined){
				var elt_row = element.getElementsByTagName("tr");
				for (var i1=0; i1<elt_row.length; i1++){ 
					elt_row[i1].className="table-row";
				}
			}
			
			var element = document.getElementById('legend-row-'+id_tbody[i]+'-'+id_tr[i]);
			if (element != undefined){ 
				element.className="table-row-choosen";
			}
		}
	}
	return true;
}

//---------------------------------------------------------
//---- nastaveni zvyrazneni hodnoty v tabulce kombinaci - pouze z tabulky kombinaci pomoci this ----
/*---- 	id tbody - nastaveni vsech tr - radku tabulky na standardni css class
		id tr - tento/tyto radky se nastavi na vybrany css class ---- */ 
function markOrderValueCombi (element_row, id_row){
	id_row = id_row.toString();
	var element = document.getElementById('family-data-tbody');
	if (element != undefined){
		var elt_row = element.getElementsByTagName("tr");
		for (var i1=0; i1<elt_row.length; i1++){ 
			elt_row[i1].className="table-row";
		}
	}
	if (id_row != ''){
		var element = document.getElementById(id_row);
	} else { //pres odkaz this - pri kliku v combi tabulce
		var element = element_row;
	}
	
	if (element_row != undefined){
		element.className="table-row-choosen";
	}
	return true;
}

//---------------------------------------------------------
//---- zjisteni hodnoty parametru v objednavacim kodu a spusteni scriptu na zmenu css class - markOrderValue ----
function markOrderValueSelect (id_parameter){
	id_parameter = id_parameter.toString();
	var elt_select = document.getElementById('order-code-'+id_parameter);
	if (elt_select != undefined) {
		var selected_index = elt_select.selectedIndex;
		var selected_value = elt_select.options[selected_index].value;
		markOrderValue (id_parameter, selected_value);
	}
	return true;
}

//---------------------------------------------------------
//---- zjisteni hodnot vsech parametru v objednavacim kodu, pouzitych v kombinacni tabulce a zjisteni id radku kombinacni tabulky - zmena css class ----
function markCombiTableRow (id_parameter){
	var funcName = 'getRowId';
	if (typeof funcName == 'string' && eval('typeof ' + funcName) == 'function') {
		id_parameter = id_parameter.toString();
		if (id_parameter != ''){
			var id_parameter = id_parameter.split(';');
		}
		var id_row = new Array();
		for (var i=0; i<id_parameter.length; i++){
			var elt_select = document.getElementById('order-code-'+id_parameter[i]);
			if (elt_select != undefined) {
				var selected_index = elt_select.selectedIndex;
				var selected_value = elt_select.options[selected_index].value;
				var next_index = id_row.length;
				id_row[next_index] = selected_value;
			}
		}
		
		var elt = document.getElementsByName('order_code[0][product_id]');
		//check if there is element
		if (elt.length == 1){
			var this_value = elt[0].value;
			this_value = this_value.replace('-','');
			var next_index = id_row.length;
			id_row[next_index] = this_value;
		}
		
		if (id_row.length > 0) {
			var search_var = id_row.join ('-');
			eval(funcName+'(search_var)');
		}
		
	}
	return true;
}

//---------------------------------------------------------
//---- bez zvyrazneni cele combi table  ----
function clearCombiTable (){
	var element = document.getElementById('family-data-tbody');
	if (element != undefined){
		var elt_row = element.getElementsByTagName("tr");
		for (var i1=0; i1<elt_row.length; i1++){ 
			elt_row[i1].className="table-row";
		}
	}
	return true;
}

//---------------------------------------------------------
//---- rotate img - search assistant on homepage  ----
/*
the_elt = id of element img, that 
the_img = set of images (; separated)
the_i = i of img
tickspeed = ticker speed in miliseconds (2000=2 seconds)
*/
function rotateImg (the_elt, the_img, the_i, tickspeed){
	var img_set = the_img.split(';');
	var total_img = img_set.length;
	the_i = (the_i<total_img-1) ? the_i+1 : 0;
	var element = document.getElementById(the_elt);
	if (element != undefined){
		element.src = 'pict_db/product_applications/'+img_set[the_i];
		setTimeout("rotateImg('"+the_elt+"', '"+the_img+"', "+the_i+", "+tickspeed+")", tickspeed) // call itself
	}
}
//---------------------------------------------------------
//---- disable (shadow) img
function disableImg (the_id){
	var element = document.getElementById(the_id);
	if (element != undefined){
		element.className = "img-disabled";
	}
}

//---------------------------------------------------------


//---------------------------------------------------------
//---------------------------------------------------------
//AJAX
//---- zapnuti podpory ajax v skriptu ---- 
function ajaxStart(source) {
	
	// odmazeme stary skript, pokud existoval
	var hlavicka = document.getElementsByTagName('head')[0];
	var dataLoader = document.getElementById('scriptLoader');
	if(dataLoader) hlavicka.removeChild(dataLoader);
	
	// vytvorime novy element script
	script = document.createElement('script');
	script.id = 'scriptLoader';
	script.src = source;
	
	// POZOR, DULEZITE!! Skript musime vlozit do stranky pomoci DOM - appendChild()
	// Ihned po vlozeni prohlizec stahne skript a spusti jej
	x = document.getElementsByTagName('head')[0];
	x.appendChild(script);
	
	return false;
}



/** Odeslání XMLHttp požadavku
* @param Function state_change funkce zajišťující obsluhu při změně stavu požadavku, dostane parametr s XMLHttp objektem
* @param string method GET|POST|...
* @param string url URL požadavku
* @param string [content] tělo zprávy
* @param object [headers] předané hlavičky ve tvaru { 'hlavička': 'obsah' }
* @return boolean true v případě úspěchu, false jinak
* @copyright Jakub Vrána, http://php.vrana.cz
*/
function send_xmlhttprequest(state_change, method, url, content, headers) {
    var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest() : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false));
    if (!xmlhttp) {
        return false;
    }
    xmlhttp.open(method, url);
    xmlhttp.onreadystatechange = function () {
        state_change(xmlhttp);
    };
    headers = headers || {};
    headers['X-Requested-With'] = headers['X-Requested-With'] || 'XMLHttpRequest';
    for (var key in headers) {
        xmlhttp.setRequestHeader(key, headers[key]);
    }
    xmlhttp.send(content);
    return true;
}
