/**************************************
*   (c) Andrew Zaitsew, 2005 - 2009   *
*       Aranea web-design studio      *
*           www.aranea.com.ua         *
*               common.js             *
*      front-end common javascript    *
*       ver. 4.0.01 of 28.05.2009     *
**************************************/

function setCheckboxes(form, do_check, name) {
    var elts = document.forms[form].elements;
    var elts_cnt = ( typeof(elts.length) != 'undefined' ) ? elts.length : 0;
    if ( elts_cnt ) {
        for (var i = 0; i < elts_cnt; i++) {
			if ( elts[i].type == 'checkbox' ) {
				if ( name != undefined ) { 
					if ( elts[i].name.indexOf(name) != -1 ) { 
			            elts[i].checked = do_check;
					}
				} else {
		            elts[i].checked = do_check;
				}
			}
        }
    } else {
        elts.checked = do_check;
    }
    return true;
}

function currRound(value) {
	return floatRound(value, 2);
}

function floatRound(value, digits) {
	if ( isNaN(value) || isNaN(digits) ) {
		return 0;
	} else {
		return (parseInt(value * 10000000) / 10000000).toFixed(digits);
	}
}

function getAnchor(_anchor) {
	location.replace("http://" + location.host + location.pathname + location.search + "#" + _anchor);
}

function gotoUrl(url) {
	newwnd = window.open(url, "aranea_link");
	newwnd.focus();
}

function setVisible(Id, value) {
	if ( document.getElementById(Id) ) {
		if ( value ) {
			document.getElementById(Id).style.visibility = 'visible';
		} else {
			document.getElementById(Id).style.visibility = 'hidden';
		}
	}
	return false;
}

function setDisplay(Id, value) {
	if ( document.getElementById(Id) ) {
		if ( value ) {
			document.getElementById(Id).style.display = '';
		} else {
			document.getElementById(Id).style.display = 'none';
		}
	}
	return false;
}

function toggleDisplay(Id) {
	if ( document.getElementById(Id) ) {
		if ( document.getElementById(Id).style.display == 'none' ) {
			document.getElementById(Id).style.display = '';
		} else {
			document.getElementById(Id).style.display = 'none';
		}
	}
	return false;
}

function toggleSubmenu(Id, url) {
	if ( document.getElementById(Id) ) {
		if ( document.getElementById(Id).className == '' ) {
			document.getElementById(Id).className = 'visible';
		} else {
			location.replace(url);
		}
	}
	return false;
}

function toggleForm(_item, _btn) {
	if ( !_btn ) {
		_btn = 'btn_show';
	}
	if ( document.getElementById(_item) ) {
		if ( document.getElementById(_item).style.display == 'none' ) {
			document.getElementById(_item).style.display = '';
			document.getElementById(_btn).className = 'gray';
		} else {
			document.getElementById(_item).style.display = 'none';
			document.getElementById(_btn).className = '';
		}
	}
	return false;
}

function openSubmenu(Id) {
	if ( document.getElementById(Id) ) {
		document.getElementById(Id).className = 'visible';
	}
	return false;
}

function checkLengthForm(fld_name, maxlength, form_name) {
	if ( document.getElementById(form_name) ) {
		form = document.getElementById(form_name);
	} else {
		form = document.order_form;
	}
	if ( form.elements[fld_name] ) {
		lastlength = parseInt(maxlength) - form.elements[fld_name].value.length;
	} else {
		alert(fld_name);
	}
	if ( lastlength <= 0 ) {
		form.elements[fld_name].value = form.elements[fld_name].value.substring(0, maxlength);
		lastlength = parseInt(maxlength) - form.elements[fld_name].value.length;
	}
	if ( document.getElementById('cnt_' + fld_name) ) {
		document.getElementById('cnt_' + fld_name).innerHTML = lastlength;
	}
	return false;
}

function setCheckLengthForm(fld_name, maxlength, form_name) {
	if ( document.getElementById(form_name) ) {
		form = document.getElementById(form_name);
	} else {
		form = document.order_form;
	}
	if ( form.elements[fld_name] ) {
		lastlength = parseInt(maxlength) - form.elements[fld_name].value.length;
	} else {
		alert(fld_name);
	}
	form.elements[fld_name].onkeyup = function() {
		lastlength = parseInt(maxlength) - form.elements[fld_name].value.length;
		if ( lastlength <= 0 ) {
			form.elements[fld_name].value = form.elements[fld_name].value.substring(0, maxlength);
			lastlength = parseInt(maxlength) - form.elements[fld_name].value.length;
		}
		if ( document.getElementById('cnt_' + fld_name) ) {
			document.getElementById('cnt_' + fld_name).innerHTML = lastlength;
		}
		return false;
	}
	form.elements[fld_name].onchange = form.elements[fld_name].onkeyup;
	form.elements[fld_name].onkeyup();
	return false;
}

function getObj(_item) {
	if ( typeof _item == 'object') {
		obj = _item;
	} else {
		obj = document.getElementById(_item);
	}
	return obj;
}

function setSelected(_item) {
	obj = document.getElementById(_item);
	unsetClass(obj, 'LI', /item-first/gi);
	setClass2(_item, 'selected');
}

function toggleClass(_item, class1, class2) {
	obj = getObj(_item);
	if ( obj ) {
		if ( obj.className == class1 ) {
			obj.className = class2;
		} else {
			obj.className = class1;
		}
	}
	return false;
}

function setClass(_item, value) {
	obj = getObj(_item);
	if ( obj ) {
		obj.className = value;
	}
	return false;
}

function setClass2(_item, _class) {
	obj = getObj(_item);
	if ( obj ) {
		if ( obj.className.length > 0 ) {
			if ( obj.className.indexOf(_class) < 0 ) {
				obj.className = obj.className + ' ' + _class;
			}
		} else {
			obj.className = _class;
		}
	}
}

function clearClass(_item) {
	obj = getObj(_item);
	if ( obj ) {
		obj.className = '';
	}
}

function unsetSelected(_item, _tag) {
	obj = getObj(_item);
	unsetClass(obj, _tag, /selected/gi);
}

function unsetClass(obj, _tag, _class) {
	if ( obj ) {
		if ( obj.className ) {
			obj.className = obj.className.replace(_class, "");
		}
		if ( obj.childNodes ) {
			for (var i = 0; i < obj.childNodes.length; i++) {
				if ( (obj.childNodes[i].tagName == _tag) || !_tag ) {
					if ( obj.childNodes[i].className ) {
						obj.childNodes[i].className = obj.childNodes[i].className.replace(_class, "");
					}
				}
				if ( obj.childNodes[i].childNodes.length > 0 ) {
					unsetClass(obj.childNodes[i], _tag, _class);
				}
			}
		}
	}
}

function AJAXFade(_item) {
	if ( document.getElementById(_item) ) { 
		var FadeShow = new Spry.Effect.Fade(_item, {duration:100, from:100, to:50});
		FadeShow.start();
	}
}

function openVoteResults(cid, vid) {
	if ( document.getElementById('cid' + cid + '_vote_content' + vid) ) {
		showAJAXicon('cid' + cid + '_vote_content' + vid, 0);
		Spry.Utils.updateContent('cid' + cid + '_vote_content' + vid, site_url + 'module/ajax/action_vote.php?act=results&vid=' + vid);
	}
}

function processVote(cid, vid) {
	result = Spry.Utils.submitForm('cid' + cid + '_vote_form' + vid, window['cid' + cid + '_updateForm' + vid]);
	showAJAXicon('cid' + cid + '_vote_content' + vid, 0);
	return result;
}

function updateCaptcha(_el) {
	if ( document.getElementById(_el) ) {
		Spry.Utils.updateContent(_el, site_url + 'captcha.php?ajax');
	}
	return false;
}

function updateCaptchaS(_el) {
	if ( document.getElementById(_el) ) {
		Spry.Utils.updateContent(_el, site_url + 'captchas.php?ajax');
	}
	return false;
}

function addToCart(gid) {
	if ( document.getElementById('basket-state') ) {
		showAJAXicon('basket-state', 2);
		Spry.Utils.updateContent('basket-state', site_url + 'module/ajax/action_cart.php?act=add&gid=' + gid);
	}
}

function addToCartMany(form, name) {
	if ( document.getElementById('basket-state') && document.forms[form] ) {
		gids = '';
		var elts = document.forms[form].elements;
		var elts_cnt  = ( typeof(elts.length) != 'undefined' ) ? elts.length : 0;
		if ( elts_cnt ) {
			for (var i = 0; i < elts_cnt; i++) {
				if ( elts[i].type == 'checkbox' ) {
					if ( (elts[i].name.indexOf(name) != -1) && elts[i].checked ) {
						if ( gids.length > 0 ) {
							gids = gids + ',';
						}
						gids = gids + elts[i].value;
					}
				}
			}
		}
		if ( gids.length > 0 ) {
			showAJAXicon('basket-state', 2);
			Spry.Utils.updateContent('basket-state', site_url + 'module/ajax/action_cart.php?act=addmany&gids=' + gids);
		}
	}
}

function delFromCart(gid) {
	location.replace(site_url + 'cart/del' + gid);
}

function showCartInfo() {
	if ( document.getElementById('basket-state') ) {
		showAJAXicon('basket-state', 2);
		Spry.Utils.updateContent('basket-state', site_url + 'module/ajax/action_cart.php?act=info');
	}
}

function clearCart() {
	location.replace(site_url + 'cart/clear');
}

function checkoutCart() {
	location.replace(site_url + 'cart/checkout');
}

function changeOrder(orderId) {
	document.getElementById('btn_change').disabled = true;
	Spry.Utils.submitForm('order' + orderId, updateForm);
}

var agt = navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
var is_nav  = ((agt.indexOf('mozilla') != -1) && (agt.indexOf('spoofer') == -1)
                        && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera') == -1)
                        && (agt.indexOf('webtv') == -1) && (agt.indexOf('hotjava') == -1));
var is_nav4up = (is_nav && (is_major >= 4));

var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie3    = (is_ie && (is_major < 4));
var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4") != -1) );
var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);

function InsertText(element, text, pos) {
	element.value = element.value.slice(0, pos) + text + element.value.slice(pos);
}

function AddBBCode(tag) {
	var t1 = '[' + tag + ']';
	var t2 = '[/' + tag + ']';
	
	if ( is_ie5up ) {
		if ( document.selection ) {
			document.getElementById('frm_text').focus();
			var txt = document.getElementById('frm_text').value;
			var str = document.selection.createRange();
			if ( str.text == '' ) {
				str.text = t1 + t2;
			} else {
				if (txt.indexOf(str.text) >= 0) {
					str.text = t1 + str.text + t2;
				}
			}
		} else {
			document.getElementById('frm_text').value = txt + t1 + t2;
		}
		str.select();
	} else {
		if ( is_nav4up || (typeof document.getElementById('frm_text').selectionStart) != 'undefined' ) {
			var element = document.getElementById('frm_text');
			var sel_start = element.selectionStart;
			var sel_end = element.selectionEnd;
			InsertText(element, t1, sel_start);
			InsertText(element, t2, sel_end + t1.length);
			element.selectionStart = sel_start;
			element.selectionEnd = sel_end + t1.length + t2.length;
			element.focus();
		} else {
			document.getElementById('frm_text').value = document.getElementById('frm_text').value + t1 + t2;
		}
	}
}

function quotePost(_post) {
	if ( document.getElementById('post_table') ) {
		document.getElementById('post_table').style.display = '';
		document.getElementById('btn_show').className = 'gray';
		str = document.getElementById(_post).innerHTML.replace(/(^\s+)|(\s+$)/g, "");
		str = str.replace(/<strong>/gi, "[b]");
		str = str.replace(/<\/strong>/gi, "[/b]");
		str = str.replace(/<em>/gi, "[i]");
		str = str.replace(/<\/em>/gi, "[/i]");
		str = str.replace(/<span style="text-decoration:underline;">/gi, "[u]");
		str = str.replace(/<\/span>/gi, "[/u]");
		str = str.replace(/<blockquote>/gi, "[quote]");
		str = str.replace(/<\/blockquote>/gi, "[/quote]");
		str = str.replace(/<br>/gi, "\n");
		str = str.replace(/<br \/>/gi, "\n");
		document.order_form.frm_text.value = str;
		checkLengthForm('frm_text', 960);
		document.order_form.frm_text.value = '[quote]' + document.order_form.frm_text.value + '[/quote]';
		checkLengthForm('frm_text', 1000);
		document.getElementById('btn_show').focus();
	}
	return false;
}

function CheckIn(_el, _value) {
	if ( _el.value == _value ) {
		_el.value = '';
	}
}

function CheckOut(_el, _value) {
	if ( _el.value.length == 0 ) {
		_el.value = _value;
	}
}

function setDisplay(_el, _display) {
	if ( document.getElementById(_el) ) {
		if ( _display ) {
			document.getElementById(_el).style.display = '';
		} else {
			document.getElementById(_el).style.display = 'none';
		}
		return true;
	} else {
		return false;
	}
}

function setText(_el, _text) {
	if ( document.getElementById(_el) ) {
		document.getElementById(_el).innerHTML = _text;
		return true;
	} else {
		return false;
	}
}

// iframe file upload
function createUploadFrame() {
	var id = 'f' + Math.floor(Math.random() * 99999);
	var div = document.createElement('div');
	div.innerHTML = '<iframe style="display:none" src="about:blank" id="' + id + '" name="' + id + '" onload="sendFileComplete(\'' + id + '\')"></iframe>';
	document.body.appendChild(div);
	return document.getElementById(id);
//	return document.getElementById('uploadframe');
}

function sendUploadForm(_form, _item, _func, _mode) {
	if ( !document.createElement ) { return false; }
	form = getObj(_form);
	if ( !form ) { return false; }
	showAJAXicon(_item, 99);
	var uframe = createUploadFrame();
	uframe.onSendComplete = function() { _func(_form, _item, getUploadResult(uframe)); };
	form.setAttribute('target', uframe.id);
	form.mode.value = _mode;
	form.submit();
}

function sendFileComplete(_item) {
	var uframe = document.getElementById(_item);
	if ( uframe.onSendComplete && (typeof(uframe.onSendComplete) == 'function') ) {
		uframe.onSendComplete();
	}
}

function getUploadResult(uframe) {
	var doc = uframe.contentDocument;
	if ( !doc && uframe.contentWindow ) { doc = uframe.contentWindow.document; }
	if ( !doc ) { doc = window.frames[uframe.id].document; }
	if ( !doc ) { return false; }
	if ( doc.location=="about:blank") { return false; }
	return doc;
}

function uploadComplete(_form, _item, doc) {
	form = getObj(_form);
	if ( !form ) { return false; }
	form.reset();
	key = doc.getElementById('key').innerHTML;
	file = doc.getElementById('file').innerHTML;
	js = doc.getElementById('js').innerHTML;
	width = doc.getElementById('width').innerHTML;
	height = doc.getElementById('height').innerHTML;
	size = doc.getElementById('size').innerHTML;
	message = doc.getElementById('message').innerHTML
	filename = doc.getElementById('file').innerHTML
	if ( file.length > 0 ) {
		setText(_item, '<span style="background-image:url(' + doc.getElementById('file').innerHTML + ');"' + js + '></span>');
		setDisplay('file_del' + key, true);
	} else {
		setText(_item, '<span style="background-image:url(images/no-image.jpg);"></span>');
		setDisplay('file_del' + key, false);
	}
	setText('file_msg' + key, message);
}
// end iframe file upload
