/*function $(id) {
    return document.getElementById(id);
}*/

function createElementWithClassName(type, class_name) {
    var el = document.createElement(type);
    el.className = class_name;
    return el;
}

function createLink(click_handler, val) {
    var link = document.createElement('a');
    with (link) {
        onclick = click_handler;
        href = '#';
        appendChild(document.createTextNode(val));
    }
    return link;
}

function createButton(click_handler, val) {
    var button = document.createElement('input');
    with (button) {
        type = 'button';
        value = val;
        onclick = click_handler;
    }
    return button;
}

function toggle(el) {
    el.style.display = (el.style.display == 'none') ? '' : 'none';
}

function addEvent(el, type, fn) {
    if (el.addEventListener) {
        el.addEventListener(type, fn, false);
    } else if (el.attachEvent) {
        el.attachEvent('on' + type, fn);
    } else {
        el['on' + type] = fn;
    }
}

function removeEvent(el, type, fn) {
    if (el.detachEvent) {
        el.detachEvent('on' + type, fn);
    } else {
        el.removeEventListener(type, fn, false);
    }
}

function addLoadEvent(fn) {
    var load = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = fn;
    } else {
        window.onload = function() {
            load();
            fn();
        }
    }
}

function addClass(el, class_name) {
    el.className = (el.className) ? el.className + ' ' + class_name : class_name;
}

function removeClass(el, class_name) {
    el.className = el.className.replace(' ' + class_name, '');
    el.className = el.className.replace(class_name, '');
}

function foundClass(el, class_name) {
	return (el.className.indexOf(class_name) == -1) ? false : true;
}

function getElementsByClass(class_list, parent_node) {
    var parent_node = parent_node || document;
    var list = parent_node.getElementsByTagName('*');
    var classes = class_list.split(/\s+/);
    var result = [], i, j;
    for (i = 0; i < list.length; i ++) {
        for (j = 0; j < classes.length; j++)  {
            if (list[i].className.search('\\b' + classes[j] + '\\b') != -1) {
                result.push(list[i]);
                break;
            }
        }
    }
    return result;
}

function insertAfter(parent_node, new_node, reference_node) {
      parent_node.insertBefore(new_node, reference_node.nextSibling);
}

function trim(str) {
    return str.replace(/(^\s+)|(\s+$)/g, '')
}

function isNotEmpty(str) {
    return (trim(str)) ? true : false;
}

function emulatePlaceholder(el, default_val) {
	el.value = (el.value == default_val) ? '' :
					(isNotEmpty(el.value) ? el.value : default_val);
}

function inObject(el, obj) {
	for (var key in obj) {
		if (el == obj[key]) return true;
	}
	return false;
}

function inArray(el, arr) {
	for (var key in arr) {
		if (el == arr[key]) return true;
	}
	return false;
}

function iApple() {
	if (navigator.userAgent.match(/(iPad|iPod|iPhone)/i)) {
		return true;
	}
	return false;
}

function preloadImg() {
   for(var i = 0; i < arguments.length; i ++) {
	  var img = new Image();
	  img.src = arguments[i];
   }
}

function toggleContact() {
	var popup = document.getElementById('contact_popup');
	var box = document.getElementById('contact_button');
	var a = box.getElementsByTagName('a')[0];	
	if (on_toggle) {
		on_toggle = false;
		if (popup.style.display == 'block') {
			removeClass(a, 'arrow_up');
			removeEvent(document, 'click', hideContact);
		} else {
			addClass(a, 'arrow_up');
			addEvent(document, 'click', hideContact);
		}
		$(popup).fadeToggle(function() {
			on_toggle = true;
		});
	}
}

function hideContact(event) {
	var event = event || window.event;
    var cl = event.target || event.srcElement;
	var cp = document.getElementById('contact_popup');
	var cp_els = cp.getElementsByTagName('*');
	var cb = document.getElementById('contact_button');
	var cb_els = cb.getElementsByTagName('*');
	if (cl.className != 'right_bg') {
		if (
			inObject(cl, cp_els)
			||
			inObject(cl, cb_els)
			||
			cl == cp
		) {
			return false;
		}
	}
	toggleContact();
}

function switchSpecification(cur_tab) {
	var tabs_parent_node = document.getElementById('spec_tabs');
	var tabs = getElementsByClass('tab', tabs_parent_node);
	var boxes_parent_node = document.getElementById('spec_boxes');
	var boxes = getElementsByClass('box', boxes_parent_node);
	var cur_box;
	if (!foundClass(cur_tab, 'active')) {
		addClass(cur_tab, 'active');
		removeClass(cur_tab, 'passive');
		for (var i = 0, t; i < tabs.length; i ++) {
			t = tabs[i];
			if (t !== cur_tab) {
				removeClass(t, 'active');
				if (!foundClass(t, 'passive')) {
					addClass(t, 'passive');
				}
			} else {
				cur_box = boxes[i];
				removeClass(cur_box, 'hide');
			}
		}
		for (var i = 0, b; i < boxes.length; i ++) {
			b = boxes[i];
			if (b != cur_box) {
				if (!foundClass(b, 'hide')) {
					addClass(b, 'hide');
				}
			}
		}
	}
}

function initMenu() {
	var menu = ['juice', 'oil', 'peel', 'facts'];
	$('.parent.juice').click(function() {
		$('.child.juice').toggle(200, function() {
			changeClassParent('juice');
			hideMenuOtherItems(menu, 'juice');
			window.location='/lime_juice.php';
		});
		return false;
	});
	$('.parent.oil').click(function() {
		$('.child.oil').toggle(200, function() {
			changeClassParent('oil');
			hideMenuOtherItems(menu, 'oil');
			window.location='/lime_oil.php';
		});
		return false;
	});
	$('.parent.peel').click(function() {
		$('.child.peel').toggle(200, function() {
			changeClassParent('peel');
			hideMenuOtherItems(menu, 'peel');
			window.location='/lime_peel.php';
		});
		return false;
	});
	$('.parent.facts').click(function() {
		$('.child.facts').toggle(200, function() {
			changeClassParent('facts');
			hideMenuOtherItems(menu, 'facts');
			window.location='/lime_facts.php';
		});
		return false;
	});
}

function hideMenuOtherItems(menu, cur_item) {
	var cls, parent, child;
	for (var key in menu) {
		cls = menu[key];
		parent = $('.parent.' + cls);
		child = $('.child.' + cls);
		if (cls != cur_item && child.css('display') != 'none') {
			child.slideUp(200, function() {});
			parent.find('a').removeClass('active');
		}
	}
}

function changeClassParent(cur_item) {
	var parent = $('.parent.' + cur_item);
	var child = $('.child.' + cur_item);
	if (child.css('display') != 'none') {
		parent.find('a').addClass('active');
	} else {
		parent.find('a').removeClass('active');
	}
}
