var evt = {  	
    add: function(obj, etype, fp, cap) {
        cap = cap || false;
        if (obj.addEventListener) obj.addEventListener(etype, fp, cap);
        else if (obj.attachEvent) obj.attachEvent("on" + etype, fp);
    }, 

    remove: function(obj, etype, fp, cap) {
        cap = cap || false;
        if (obj.removeEventListener) obj.removeEventListener(etype, fp, cap);
        else if (obj.detachEvent) obj.detachEvent("on" + etype, fp);
    }, 
    
    DOMit: function(e) { 
        e = e ? e : window.event;
        if (!e.target) e.target = e.srcElement;
        if (!e.preventDefault) e.preventDefault = function () { e.returnValue = false; return false; }
        if (!e.stopPropagation) e.stopPropagation = function () { e.cancelBubble = true; }
        return e;
    },
    
    getTarget: function(e) {
        e = dw_Event.DOMit(e);
		var tgt = e.target; 
        if (tgt.nodeType != 1) tgt = tgt.parentNode; // safari...
        return tgt;
    }
    
}

function windowSize() {
	var 
		e = document.documentElement, 
		d = document.body,
		cw = e.clientWidth,
		ch = e.clientHeight,
		sw = e.scrollWidth,
		sh = e.scrollHeight,
		st = e.scrollTop > d.scrollTop ? e.scrollTop : d.scrollTop,
		sl = e.scrollLeft,
		vw = cw > sw ? cw : sw,
		vh = ch > sh ? ch : sh;
	return {'vw': vw, 'vh': vh, 'cw': cw, 'ch': ch, 'sw': sw, 'sh': sh, 'st': st, 'sl': sl}
}
function showOverlay() {
	var size = windowSize(),
		d = document.createElement('div'),
		s = d.style;
		d.id = 'overlay';		
	s.width = size.vw + 'px';
	s.height = size.vh + 'px';
	
	if($.browser.msie && ($.browser.version == 6 || $.browser.version == 7)) {
		s.visibility = 'hidden';
	}
	
	
	document.body.appendChild(d);
	
	evt.add(window, 'resize', function() {
		
			size = windowSize();
			
			s.width = size.cw + 'px';
			s.height = size.vh + 'px';
		
	}, false);
	return d;
}
function centerAbsolute(elem) {
	var size = windowSize();
	elem.style.top = parseInt(size.st+size.ch/2-elem.offsetHeight/2)+'px';
	elem.style.left = parseInt(size.sl+size.cw/2-elem.offsetWidth/2)+'px';
}
function inArray( elem, array ) {
	for ( var i = 0, length = array.length; i < length; i++ )
		if ( array[ i ] === elem )
			return i;
	return -1;
}

check = {
	init: function(form, a, callback) {
		this.a = a;
		this.form = form;
		this.callback = callback;
		this.inputs = this.form.getElementsByTagName('input');
		this.textareas = this.form.getElementsByTagName('textarea');
		this.form.onsubmit = function() {
			if(check.fCheck()) {
				var data = check.serialize(check.form);
				data.ajax = true;
				check.ajax(data);
			}
			return false;
		}
	},
	serialize: function(f) {
		var i = 0, obj = {}, e = f.elements;
		for(; i < e.length; i++) if(e[i].tagName == 'SELECT' || e[i].tagName == 'TEXTAREA' || e[i].getAttribute('type') == 'text') obj[e[i].name] = e[i].value;
		return obj;
	},
	ajax: function(data) {
		jQuery.post('index.php', data, this.callback, 'text');
	},
	noCheck: [],
	isCheck: function(id) {
		if(id && id.indexOf('check') != -1) return true;
        return false;
	},
	fCheck: function() {		
		if(this.noCheck.length > 0) {
            this.notice(this.noCheck, 'black', true);
            this.noCheck.length = 0;
        }
		if(this.inputs.length > 0) {
			for(var i in this.inputs) {
				if(this.isCheck(this.inputs[i].id)) {
					if(this.inputs[i].value == '') this.noCheck.push(this.inputs[i].id); 
				}
			}
		}
		
		if(this.textareas.length > 0) {
			for(var i in this.textareas) {
				if(this.isCheck(this.textareas[i].id)) {
					if(this.textareas[i].value == '') this.noCheck.push(this.textareas[i].id); 
				}
			}
		}
        if(this.noCheck.length == 0) return true;
        else {			
            this.notice(this.noCheck, '#ff7200');
            return false;
        }
	},
	notice: function(fld, c, res) {
		for(var i in fld) {			
			var count = 0;
			var pos = fld[i].indexOf('_');			
			var ispos = pos;
			while (ispos != -1 ) {
				pos = ispos;
			   	count++;
			   	ispos = fld[i].indexOf('_',pos+1);
			}
			var title = fld[i].substr(0, pos);
			var caption = document.getElementById(title+'_caption');
			var field = document.getElementById(fld[i]);
			var notice = document.getElementById(title+'_notice');					
			if(caption) caption.style.color = c;
			if(field) field.style.border = '1px solid '+c;			
			if(notice) {
				if(res) notice.innerHTML = '';
				else notice.innerHTML = eval('this.a.'+title);
			}										
        } 
	}	
};

