/*                         Suponix.com (anDeRan)                              */


	function loader_hide(data){
		if (data == 'main') {
			document.getElementById('overlay').style.display = 'none';
			document.getElementById('overlay_info').style.display = 'none';
			main_loader = false;
		} else if (!main_loader){
			document.getElementById('overlay').style.display = 'none';
			document.getElementById('overlay_info').style.display = 'none';
		}
	}

	function loader_show(){
		document.getElementById('overlay').style.display = 'block';
		document.getElementById('overlay_info').style.display = 'block';
	}

var is_ie = !!document.uniqueID;
var ie6   = is_ie && navigator.appVersion.match(/MSIE (5.5|6)/);
var loaded_tips, i_width, i_height;

var substrCount = function (haystack, needle) {
	var total = 0, pos = 0;
	while (pos != -1) {
		pos = haystack.indexOf(needle);
		if (pos != -1) {
			total++;
			haystack = haystack.substring(pos + needle.length);
		}
	}
	return total;
};

var strRepeat = function (input, multiplier) {
	var result = '';
	while (multiplier-- > 0) {
		result += input;
	}
	return result;
};

var nextIndex = function (value, array, direction) {
	var i = array.length;
	while (i-- > 0) {
		if (array[i] == value) {
			if (direction == 'next') {
				return array[i+1] == undefined ? array[i] : array[i+1];
			} else {
				return array[i-1] == undefined ? array[i] : array[i-1];
			}
		}
	}
};

if (is_ie) {
	var XMLHttpRequest = function () {
		return (new ActiveXObject("Msxml2.XMLHTTP")) || (new ActiveXObject("Microsoft.XMLHTTP")) || false;
	};
}

var request = function () {
	try {
		var link = new XMLHttpRequest();
	} catch (e) {
		alert('Your browser doesn\'t support XMLHttpRequest. Please enable XMLHTTPRequest if disabled or update your browser is old.');
	}

	this.get = function (path, analyze) {
		link.onreadystatechange = function () {
			if (link.readyState == 4 && link.status == 200) {
				if (analyze) {
					analyze(link);
				}
				
			}
		};
		link.open('GET', path, true);

		if (ie6) {
			link.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
		}
		link.send('');
	};
};

var preloadImgs = function () {
	var i = arguments.length;
	while (i-- > 0) {
		(new Image()).src = '/images/' + arguments[i];
	}
};

var openPopup = function (link, width, height) {
	var left = screen.width / 2 - width / 2;
	var top  = screen.height / 2 - height / 2;
	window.open(link, '_blank', 'status=no,dependent=yes,modal=yes,height=' + height + ',width=' + width + ',left=' + left + ',top=' + top);
	return false;
};

var checkHeights = function () {
	var content = document.getElementById('home-content');
	if (content) {
		var diff, obj, tips = document.getElementById('home-tips');
		if (content.offsetHeight > tips.offsetHeight) {
			diff = content.offsetHeight - tips.offsetHeight;
			obj  = tips.childNodes[1];
		} else {
			diff = tips.offsetHeight - content.offsetHeight;
			obj  = content;
		}
		obj.style.paddingBottom = 22 + diff + 'px';
	}
};

var getTip = function (def_tip) {
	loaded_tips = loaded_tips ? loaded_tips : def_tip;
	(new request).get('/scripts/requests.php?action=tips&ignore=' + loaded_tips, parseTips);

	var link = document.getElementById('tip-text').parentNode.parentNode.getElementsByTagName('A')[0];

	var img = document.createElement('IMG');
	img.src = '/images/common/loading18.gif';
	img.width = '18';
	img.height = '18';
	img.style.position = 'absolute';
	img.style.margin = '-2px 0 0 ' + (window.opera ? '-36' : '6') + 'px';
	img.id = 'loading';
	link.parentNode.appendChild(img);

	link.blur();
	return false;
};

var parseTips = function (link) {
	var data = link.responseText.split(/\|{3}/);
	if (!isNaN(data[0])) {
		var tip = document.getElementById('tip-text');
		var loading = document.getElementById('loading');
		loading.parentNode.removeChild(loading);
		tip.innerHTML = data[1];
		loaded_tips += '|' + data[0];
//		checkHeights();
	}
};

var getDetails = function (type) {
	var mid = document.getElementById('mid').value;
	var price_item = document.getElementById('item-price');

	(new request).get('/scripts/requests.php?action=details&mid=' + mid + '&type=' + type, parseDetails);
	if(type == "style"){
	price_item.style.display='none';
	} else {
	
	price_item.style.display='block';
	}
	return false;
};

var parseDetails = function (link) {
	var data = link.responseText.split(/\|{3}/);
	var hdr  = document.getElementById('details-hdr');
	var text = document.getElementById('details-text');

	if (data[0] == 'style') {
		hdr.innerHTML = '<a href="#" class="details-hdr-on details-hdr-first" onclick="return getDetails(\'product\')">Product details</a> <strong class="details-hdr-off">Style details</strong>';
	} else {
		hdr.innerHTML = '<strong class="details-hdr-on details-hdr-first">Product details</strong> <a href="#" class="details-hdr-off" onclick="return getDetails(\'style\')">Style details</a>';
	}

	text.innerHTML = data[1];
};

var getDimensions = function (image) {
	(new request).get('/scripts/requests.php?action=dimensions&image=' + image, parseDimensions);
};

var parseDimensions = function (link) {
	var data = link.responseText.split(/\|{3}/);
	i_width  = data[0];
	i_height = data[1];
};

var showFull = function (link) {
	var path = link.firstChild.src.replace('middle', 'maxi').replace(/.+\/(images\/.+)$/, '$1');
	getDimensions(path);
	var interval = setInterval((function () {
		if (i_width != undefined) {
			i_width  = parseInt(i_width, 10) + 18;
			i_height = parseInt(i_height, 10) + 18;
			openPopup('/display.php?image=' + path, i_width, i_height);
			i_width = undefined;
			clearInterval(interval);
		}
	}), 200);
	return false;
};

var getFull = function (type) {
	var pages = document.getElementById('imgs-rotate');
	var image = document.getElementById('item-image').firstChild;
	var curr  = image.src.replace(/.+\/(\d+)_middle.+$/, '$1');
	var next  = nextIndex(curr, imgs, type);
	var html  = '';

	html += next == imgs[0] ? 'prev' : '<a href="#" onclick="return getFull(\'prev\')">prev</a>';
	html += ' / ';
	html += next == imgs[imgs.length-1] ? 'next' : '<a href="#" onclick="return getFull(\'next\')">next</a>';

	pages.innerHTML = html;

	image.src = image.src.replace(curr + '_middle', next + '_middle');
	return false;
};

var getMaterials = function (page) {
	var pid = document.getElementById('pid').value;
	(new request).get('/scripts/requests.php?action=materials&page=' + page + '&pid=' + pid, parseMaterials);
	return false;
};

var parseMaterials = function (link) {
	var data = link.responseText.split(/\|{3}/);

	var materials = document.getElementById('materials');
	var pages     = document.getElementById('pgs-links');

	materials.innerHTML = data[0];
	pages.innerHTML     = data[1];
};

//обращаемся к php script чтобы забрать данные о цене
var getPrice = function (mid) {
	(new request).get('/scripts/requests.php?action=price&mid=' + mid, parsePrice);
};


//обращаемся к php script чтобы забрать данные о Sale цене
var getSalePrice = function (mid) {
	(new request).get('/scripts/requests.php?action=sale_price&mid=' + mid, parseSalePrice);
	
};


//..обновляем данные Sale Цены  в документе 
var parseSalePrice = function (link) {
	var data = link.responseText;
	
	var sale_price = document.getElementById('sale_price');
	sale_price.innerHTML = data;	
	
};


//..обновляем данные Цены  в документе 
var parsePrice = function (link) {
	var data = link.responseText;
	
	var price = document.getElementById('price');
	price.innerHTML = data;	
};

function select_innerHTML(objeto,innerHTML){
/******
* select_innerHTML - corrige o bug do InnerHTML em selects no IE
* Veja o problema em: http://support.microsoft.com/default.aspx?scid=kb;en-us;276228
* Versão: 2.1 - 04/09/2007
* Autor: Micox - Náiron José C. Guimarães - micoxjcg@yahoo.com.br
* @objeto(tipo HTMLobject): o select a ser alterado
* @innerHTML(tipo string): o novo valor do innerHTML
*******/
    objeto.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id="micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display="none"
    if(innerHTML.indexOf("<option")<0){//se não é option eu converto
        innerHTML = "<option>" + innerHTML + "</option>"
    }
    innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span")
    selTemp.innerHTML = innerHTML
      
    
    for(var i=0;i<selTemp.childNodes.length;i++){
  var spantemp = selTemp.childNodes[i];
  
        if(spantemp.tagName){     
            opt = document.createElement("OPTION")
    
   if(document.all){ //IE
    objeto.add(opt)
   }else{
    objeto.appendChild(opt)
   }       
    
   //getting attributes
   for(var j=0; j<spantemp.attributes.length ; j++){
    var attrName = spantemp.attributes[j].nodeName;
    var attrVal = spantemp.attributes[j].nodeValue;
    if(attrVal){
     try{
      opt.setAttribute(attrName,attrVal);
      opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
     }catch(e){}
    }
   }
   //getting styles
   if(spantemp.style){
    for(var y in spantemp.style){
     try{opt.style[y] = spantemp.style[y];}catch(e){}
    }
   }
   //value and text
   opt.value = spantemp.getAttribute("value")
   opt.text = spantemp.innerHTML
   //IE
   opt.selected = spantemp.getAttribute('selected');
   opt.className = spantemp.className;
  } 
 }    
 document.body.removeChild(selTemp)
 selTemp = null
}


//обращаемся к php script чтобы забрать данные о опциях 
var getOptions = function (mid) {
	(new request).get('/scripts/requests.php?action=list&mid=' + mid, parseOptions);
	(new request).get('/scripts/requests.php?action=list2&mid=' + mid, parseOptions2);
};

var getOptions2 = function (mid) {
	(new request).get('/scripts/requests.php?action=list2&mid=' + mid, parseOptions2);
};


//..обновляем данные Опции  в документе  ==
var parseOptions = function (link) {
	var data = link.responseText;

		var list = document.getElementById('list');
		var list2 = document.getElementById('asmSelect0');
	//alert(list.innerHTML);

if(data == '<option value=0>--- Select One --- </option>')
	{
	
document.getElementById('list').style.display = 'none';
document.getElementById('wholearea').style.display = 'none';
} else {
	document.getElementById('wholearea').style.display = 'block';

	select_innerHTML(list,data);

	document.getElementById('list').style.display = 'none';


}

};

//..обновляем данные Опции  в документе  ==
var parseOptions2 = function (link) {
	var data = link.responseText;

		var list = document.getElementById('list');
		var list2 = document.getElementById('asmSelect0');
	//alert(data);

if(data == '<option value=0>--- Select One --- </option>')
	{
	
document.getElementById('list').style.display = 'none';
document.getElementById('wholearea').style.display = 'none';
} else {

	document.getElementById('asmList0').innerHTML = '';
	

 if (data)  {
	  document.getElementById('grae2').value = 1;
 }

	document.getElementById('wholearea').style.display = 'block';
	
	//select_innerHTML(list2, data);
	document.getElementById('list').style.display = 'none';
	document.getElementById('asmSelect0').innerHTML = '';

}

/// = document.getElementById('asmSelect0').innerHTML = link.responseText;
var e = document.getElementById('asmSelect0');
e.options[0] = new Option('--- Click to Select ---', '');


var list_ie = document.getElementById('list');
list_ie.innerHTML = '';
//e.options[0] = new Option('---Select One ---', '');

	var z = data.split('|');
	var q = z.length-1
	for (var i=0; i < q; i++) {
		var op = z[i].split(':');
		e.options[i+1] = new Option(op[2], op[0]);
		e.options[i+1].rel = op[1];
		
		list_ie.options[i+1] = new Option(op[2], op[0]);
		list_ie.options[i+1].id = op[1];
	}

};


//вызываем эту функцию по клику на картинку
var showMaterial = function (link) {

	loader_show();

	var image = link.firstChild;
	var path  = image.src.replace('mini', 'middle').replace(/.+\/(images\/.+)$/, '$1');
	var curr  = path.replace(/.+\/(\d+)_middle.+$/, '$1');
	var mid   = document.getElementById('mid');
	
	mid.value = curr;
	getDetails('product');

	// получаем данные о цене -  где curr - это id material
	
	getSalePrice(curr);
	getPrice(curr);
	getOptions(curr);

	var otherop = document.getElementById('list'); 
	otherop.innerHTML = "";
	
	getMiddleName(curr);
	
	var asmsw = document.getElementById('asmList0'); 
	//asmsw.style.display = 'none';

	var imgs = document.getElementById('materials').getElementsByTagName('IMG');
	var i = imgs.length;
	while (i-- > 0) {
		if (imgs[i].className) {
			imgs[i].className = '';
		}
	}
	image.className = 'curr-material';
	image.blur();	
			loader_hide();
	return false;
};

var getMiddleName = function (mid) {
	(new request).get('/scripts/requests.php?action=middlename&mid=' + mid, parseMiddleName);
};

var parseMiddleName = function (link) {
	var data = link.responseText.split(/\|{3}/);
	var middlename = document.getElementById('middlename');
	var bigImgs = document.getElementById('material-big').getElementsByTagName('IMG');
	var bigIMG = bigImgs[0];
	
	bigIMG.src="/images/items/"+data[1]+"/materials/"+data[0]+"_middle.jpg"
	bigIMG.alt=data[2];
	bigIMG.title=data[2];
	middlename.innerHTML = "Fabric: "+data[2];
};

var popupMaterial = function (link) {
	var image = link.firstChild;
	var path  = image.src.replace('middle', 'maxi').replace(/.+\/(images\/.+)$/, '$1');
	
	getDimensions(path);
	var interval = setInterval((function () {
		if (i_width != undefined) {
			i_width  = parseInt(i_width, 10) + 18;
			i_height = parseInt(i_height, 10) + 18;
			openPopup('/display.php?image=' + path, i_width, i_height);
			i_width = undefined;
			clearInterval(interval);
		}
	}), 200);
};

var changePrice = function (form, elementId) {
	var price_fld = document.getElementById('price' + elementId);
	var sum_fld   = document.getElementById('sum' + elementId);
	var price     = parseFloat(price_fld.innerHTML.substring(1)).toFixed(2);

	if (!form.value.match(/^[0-9]+$/) || form.value == '0') {
		form.value = '1';
	}

	sum_fld.innerHTML = '$' + (form.value * price).toFixed(2);
//	changeTotalPrice();
}

var in_dir = substrCount(document.location.pathname, '/') - 1;
var up_dir = strRepeat('../', in_dir);

window.onload = function () {
	if (typeof sIFR == "function") {
		if (hasFlash) {
			sIFR.replaceElement(named({sSelector:'h2', sFlashSrc:up_dir+'images/flash/charlesworth.swf', sWmode: 'transparent'}));
			sIFR.replaceElement(named({sSelector:'h3', sFlashSrc:up_dir+'images/flash/charlesworth.swf', sWmode: 'transparent'}));
			sIFR.replaceElement(named({sSelector:'h4', sFlashSrc:up_dir+'images/flash/charlesworth.swf', sWmode: 'transparent'}));
		}
	}
	preloadImgs('common/loading18.gif');
//	checkHeights();
};
