/* 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 nextNode(node) {
    do node = node.nextSibling;
    while (node && node.nodeType != 1);
    return node;
}

function previousNode(node) {
    do node = node.previousSibling;
    while (node && node.nodeType != 1);
    return node;
}

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 ? 
                   (searchClass(el, class_name) ? 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 + ' ', '');
    el.className = el.className.replace(class_name, '');
}

function toggleClass(el, class_name) {
    if (searchClass(el, class_name)) {
        removeClass(el, class_name);
    } else {
        addClass(el, class_name);
    }
}

function searchClass(el, class_name) {
    return (el.className.search('\\b' + class_name + '\\b') == -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 empty(str) {
    return !trim(str) ? true : false;
}

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

function toggleCurrency() {
	var cd = document.getElementById('currency_dropdown');
	if (cd.style.display == 'none') {
		cd.style.display = 'block';
		addEvent(document, 'click', hideCurrency);
	} else {
		cd.style.display = 'none';
		removeEvent(document, 'click', hideCurrency);
	}
}

function hideCurrency(event) {
	var event = event || window.event;
    var cl = event.target || event.srcElement;
	var cd = document.getElementById('currency_dropdown');
	var tg = document.getElementById('currency_toggle');
	if (cl != tg && cl != tg.getElementsByTagName('span')[0] && cl != cd) {
		cd.style.display = 'none';
	}
}

function displayDateWedding(sel_index) {
	var dow = document.getElementById('dow');
	if (sel_index == 4) {
		dow.style.display = 'block';
	} else {
		dow.style.display = 'none';
		var sels = dow.getElementsByTagName('select');
		for (var i = 0; i < sels.length; i ++) {
			sels[i].selectedIndex = 0;
		}
	}
}

function initNoscrollColumnsRollovers() {
    var content = document.getElementById('content_noscroll');
    var columns = getElementsByClass('column', content);
    for (var i = 0; i < columns.length; i ++) {
        (function(){
            var col = columns[i];
            addEvent(col, 'mouseover', function() {
                col.getElementsByTagName('a')[0].className='act';
            });
            addEvent(col, 'mouseout', function() {
                col.getElementsByTagName('a')[0].className='';
            });
        })();
    }
}

function textPlaceholder(event, default_val, class_name) {
    event = event || window.event;
    var el = event.target || event.srcElement;
    if (el.value == default_val && event.type == 'focus') {
        el.value = '';
        if (class_name) {
            addClass(el, class_name);
        }
    } else {
        if (empty(el.value)) {
            el.value = default_val;
            if (class_name) {
                removeClass(el, class_name);
            }
        }
    }
}

function imposeMaxLength(Object, MaxLen) {
  if(Object.value.length > (MaxLen-1))Object.value=Object.value.substring(0,MaxLen-1);
}

function toggleDesignIdeasDropdown() {
	var did = document.getElementById('di_dropdown');
	if (did.style.display == 'none') {
		did.style.display = 'block';
		addEvent(document, 'click', hideDesignIdeasDropdown);
	} else {
		did.style.display = 'none';
		removeEvent(document, 'click', hideDesignIdeasDropdown);
	}
}

function hideDesignIdeasDropdown(event) {
	var event = event || window.event;
    var cl = event.target || event.srcElement;
	var did = document.getElementById('di_dropdown');
	var tg = document.getElementById('di_toggle');
	if (cl != tg) {
		did.style.display = 'none';
	}
}

var ditm = 0;
function rolloverDesignIdeasDropdownShow() {
    clearTimeout(ditm);
    ditm = 0;
    var did = document.getElementById('di_dropdown');
	if (did.style.display == 'none') {
        did.style.display = 'block';
    }
    
}

function rolloverDesignIdeasDropdownHide() {
    ditm = setTimeout(function(){document.getElementById('di_dropdown').style.display = 'none'}, 100);
}
