/**
 * @author sea
 */
function $(element) {
	if (typeof element == 'string') element = document.getElementById(element);
	return element;
}

function getClassNames(element) {
	if (!(element = $(element)))  return;
	var classNames = element.className.split(/\s+/);
	return classNames;
}

function setClassNames(element, classNames) {
	if (!(element = $(element)))  return;
	element.className = classNames.join(' ');
}

function hasClassName(element, className) {
	if (!(element = $(element)))  return;
	var elementClassName = element.className;
	if (elementClassName.length == 0) return false;
	if (elementClassName == className ||
	    elementClassName.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
		return true;
	return false;
}

function addClassName(element, className) {
	if (!(element = $(element))) return;
	var classNames = [element.className, className];
	setClassNames(element, classNames);
	return element;
}

function removeClassName(element, className) {
	if (!(element = $(element))) return;
	var classNames = getClassNames(element);
	var newClassNames = [], aClass;
	for ( var i=0, length = classNames.length; i<length; i++ ) {
		aClass = classNames[i];
		if (aClass && (aClass!=className)) newClassNames.push(aClass);
	}
	setClassNames(element,newClassNames);
	return element;
}

function toggleClassName(element, className) {
	if (!(element = $(element))) return;
	if (hasClassName(element,className)) {
		removeClassName(element, className);
	} else {
		addClassName(element, className);
	}
	return element;
}

function getElementsByClassName(className, parentElement) {
	var children = ($(parentElement) || document.body).getElementsByTagName('*');
	var elements = [], child;
	for (var i = 0, length = children.length; i < length; i++) {
		child = children[i];
		if (hasClassName(child, className))
			elements.push(child);
	}
	return elements;
}

function observeEvent(element,name,observer) {
    if (name == 'keypress' &&
        (navigator.appVersion.match(/Konqueror|Safari|KHTML/)
        || element.attachEvent))
      name = 'keydown';
    if (element.addEventListener) {
      element.addEventListener(name, observer, false);
    } else if (element.attachEvent) {
      element.attachEvent('on' + name, observer);
    }
}

function copyElemProperties(fromElem, toElem, props) {
	fromElem = $(fromElem);
	toElem = $(toElem);
	if (fromElem && toElem && props) {
		for (var i in props) {
			if (fromElem[props[i]]) toElem[props[i]] = fromElem[props[i]];
		}
	}
}

function getBrowserInfo() {
	var app = "Internet Explorer";
	var version = "6.0";
	var ua = navigator.userAgent;
	var msieOffset = ua.indexOf("MSIE ");
	if(msieOffset > 0) {
		app = "Internet Explorer";
		version = ua.substring(msieOffset + 5, ua.indexOf(";", msieOffset));
	} else {
		var re = new RegExp('(Firefox|Opera)/([^\\s]+)','i');
		var arr=re.exec(ua);
		if (arr) {
			app = arr[1];
			version = arr[2];
		} else if (ua.match(/Safari/i)) {
			app = 'Safari';
			version = '';
		}
	}
	return app + " " + version;
}
function getSystemOSInfo() {
	var _agent = navigator.userAgent;
	if(_agent.indexOf("NT 95")>0||_agent.indexOf("Windows 98")>0){
        return "Windows 98";
    } else if(_agent.indexOf("NT 9x")>0){
        return "Windows Me";
    } else if(_agent.indexOf("NT 5.0")>0){
        return "Windows 2000";
    } else if(_agent.indexOf("NT 5.1")>0){
        return "Windows XP";
    } else if(_agent.indexOf("NT 5.2")>0){
        return "Windows 2003";
    } else if(_agent.indexOf("NT 6.0")>0){
        return "Windows Vista";
    } else if(_agent.indexOf("Windows")>0 && _agent.indexOf("NT")>0){
        return "Windows";
	} else if(_agent.indexOf("Mac")>0){
        return "Macintosh";
    } else if(_agent.indexOf("Linux")>0){
        return "Linux";
    } else if(_agent.indexOf("X11")>0){
        return "Unix";
	} else {
        return "Other OS";
    }
}

function mouseOnForm( q ) {
	if (q.value == 'Search...'){
		q.value = '';
		q.style.color = '#000';
	} else if (q.value == ''){
		q.value = 'Search...';
		q.style.color = '#666';
	} else {
		q.select();
		q.style.color = '#000';
	}
}

function checksearchform( f ){
	if (f.q.value == 'Search...' || f.q.value == '') {
		alert('Please input your search keywords!');
		f.q.focus();
		return false;
	}
	return true;
}

function mouseOnDiscountForm( q ) {
	if (q.value == 'Type software name or key functions'){
		q.value = '';
		q.style.color = '#000';
	} else if (q.value == ''){
		q.value = 'Type software name or key functions';
		q.style.color = '#666';
	} else {
		q.select();
		q.style.color = '#000';
	}
}
/*
function checkdiscountform( f, d ){
	if (f.q.value == 'Type software name or key functions' || f.q.value == '') {
		alert('Please input software name or key functions!');
		f.q.focus();
		return false;
	}
	f.style.display='none';
	document.getElementById(d).style.display=''
	return false;
}*/
