function setCookie(name, value) {
	var expire = new Date();
	expire.setTime(expire.getTime() + 30*24*60*60*1000);

	document.cookie = name + "=" + escape(value) + "; expires=" + expire.toGMTString() + "; path=/";
}
	
function removeCookie(name) {
	var expire = new Date();
	expire.setTime(expire.getTime() - 30*24*60*60*1000);
		
	document.cookie = name + "=" + escape('remove') + "; expires=" + expire.toGMTString() + "; path=/";
}
	
function getCookie(name, value) {
	var search = name + "=";
	if (document.cookie.length > 0) {
		offset = document.cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = document.cookie.indexOf(";", offset); // set index of end of cookie value
			if (end == -1)
				end = document.cookie.length;

			return unescape(document.cookie.substring(offset, end));
		}
	}

	return value;
}

function isIdentifier(s) {
	if (s.length < 3)
		return false;
		
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (('_' == c) || ('-' == c) ||
			(('A' <= c) && (c <= 'Z')) ||
			(('a' <= c) && (c <= 'z')) ||
			(('0' <= c) && (c <= '9')))
			continue;
		else 
			return false;
	} 

	return true;
}
	
function isEmail(s) {
	if (s.length < 4 || s.length > 40)
		return false;

	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (('_' == c) || ('-' == c) ||
			('@' == c) || ('.' == c) ||
			(('A' <= c) && (c <= 'Z')) ||
			(('a' <= c) && (c <= 'z')) ||
			(('0' <= c) && (c <= '9')))
			continue;
		else 
			return false;
	} 
		
	if ((i = s.lastIndexOf('@')) == -1)
		return false;
		
	if (s.charAt(0) == '@' || s.charAt(s.length-1) == '@')
		return false;
		
	var strTail = s.substring(i+1, s.length);
	if (strTail.length < 3)
		return false;
	if ((i = strTail.lastIndexOf('.')) == -1)
		return false;
			 
	var strTailEnd = strTail.substring(i+1, strTail.length);
	if (strTailEnd.length == 0)
		return false;
		
	return true;
}
	
function submitEmail(text, alerttext) {
	if (!isEmail(text.value)) {
		alert(alerttext);
		text.focus();
		return false;
	}
		
	return true;
}

function submitIdentifier(text, alerttext) {
	if(!isIdentifier(text.value)) {
		alert(alerttext);
		text.focus();
		return false;
	}
		
	return true;
}
	
function submitEqual(text1, text2, alerttext) {
	if(text1.value != text2.value) {
		alert(alerttext);
		text2.focus();
		return false;
	}
		
	return true;
}
	
function submitText(text, alerttext) {
	if (text.value.length == 0) {
		alert(alerttext);
		text.focus();
		return false;
	}
		
	return true;
}

function submitform(name,email,address,tel,firstname,lastname,alerttext){
	if (name.value.length==0&&email.value.length==0&&address.value.length==0&&tel.value.length==0&&firstname.value.length==0&&lastname.value.length==0)
	{ alert(alerttext);
	name.focus();
	return false;
}
return true;
}
/*function submitform1(addresser,subject,alerttext){
	if (addresser.value.length==0&&subject.value.length==0)
        { alert(alerttext);
        addresser.focus();
        return false;
}
return true;
}*/
function submitChoice(radio, alerttext) {
	for (var i=0; i<radio.length; i++) {
		if (radio[i].checked == "1") 
			return true;
	}
		
	alert(alerttext);
	return false;
}

function submitFloat(text, alerttext) {
	if (isNaN(parseFloat(text.value))) {
		alert(alerttext);
		text.focus();
		return false;
	}
		
	return true;
}
	
function submitInteger(text, alerttext) {
	if (isNaN(parseInt(text.value))) {
		alert(alerttext);
		text.focus();
		return false;
	}
		
	return true;
}
	
function submitQuantity(nMin, nMax, nDelta, Quantity, alerttext) {
	var nQuantity = parseInt(Quantity.value);
	if (nQuantity == Math.NaN || nQuantity < nMin || nQuantity > nMax || ((nQuantity - nMin) % nDelta) != 0) {
		alert(alerttext);
		Quantity.focus();
		return false;
	}
		
	return true;
}


var nSecsLeft = 0;
var nTimerID = 0;
var strDays = "";
var strHours = "";
var strMinutes = "";
var strSeconds = "";

function startClock(s1, s2, s3, s4, n) {
	strDays = s1;
	strHours = s2;
	strMinutes = s3;
	strSeconds = s4;
	nSecsLeft = n;
	showTime();
}

function showTime() {
	nSecsLeft--;
		
	if (nSecsLeft > 0) {
		var nRemainDays = Math.floor(nSecsLeft / (24*60*60));
		var nRemainHours = Math.floor((nSecsLeft%(24*60*60)) / (60*60));
		var nRemainMinutes = Math.floor(((nSecsLeft%(24*60*60))%(60*60)) / 60);
		var nRemainSeconds = Math.floor(((nSecsLeft%(24*60*60))%(60*60)) % 60);
		document.foClock.Face.value = nRemainDays + " " + strDays + ", " + nRemainHours + " " + strHours + ", " + nRemainMinutes + " " + strMinutes + ", " + nRemainSeconds + " " + strSeconds;
		nTimerID = setTimeout("showTime()", 1000);
	}
	else
		clearTimeout(nTimerID);
}


	
var form;
var strElapsed;
var nProgress;
	
function startProgress(f, s) {
	form = f;
	strElapsed = s;
	nProgress = 0;
	showProgress();
}
	
function showProgress() {
	form.Progress.value = nProgress + strElapsed;
	nProgress ++;
	setTimeout("showProgress()", 1000);
}


function findMember (options, member) {
	for (var i=0; i<options.length; i++) {
		if (options[i].value == member) { 
			return i; 
		}
	}
	return -1;
}
 
function enterMember(member) {
	var options = parent.frChatMembers.document.foChatMembers.Member.options;
	var n = findMember(options, member);
	if (n == -1) {
		var tmp = new Option(member, member);
		options[options.length].value=tmp;
		options.length++;
	}
}

function leaveMember(member) {
	var options = parent.frChatMembers.document.foChatMembers.Member.options;
	var n = findMember(options, member);
	if (n != -1) {
		for (var i=n+1;i<options.length;i++) {
			options[i-1].text=options[i].text;
			options[i-1].value=options[i].value;
		}
		options[options.length-1]=null;
		options.length--;
		
		var choice = parent.frChatMembers.document.foChatMembers.Member;
		if (n==choice.selectedIndex) choice.selectedIndex=0;
		if (n<choice.selectedIndex) choice.selectedIndex=n-1;
		if (n>choice.selectedIndex) choice.selectedIndex=n;
	}
}


function insertMemberID(){
    s = '';
    j=0;
    if(document.foDelete == null) {
      alert('请先点击"网上呼叫","编发信件","联络组", ...等相关操作');
      return;
    }
    for(i=0; i<document.foDelete.elements.length; i++) {
      dom=document.foDelete.elements[i];
      if(dom.checked) {
         if(j==0) {
            s += dom.name;
            j = 1;
          }
          else {
             s += ',' + dom.name;
             j += 1;
          }
       }
    }
    if(window.opener.document.foNew == null) {
      alert('请先点击"网上呼叫","编发信件","联络组", ...等相关操作');
      return;
    }
    if(!(window.opener.document.foNew.To == null)) {
       window.opener.document.foNew.To.size = 20 + (j-1)*10;
       window.opener.document.foNew.To.value = s;
       window.close();
    }
    if(!(window.opener.document.foNew.Contacts == null)) {
       window.opener.document.foNew.Contacts.size = 20 + (j-1)*10;
       window.opener.document.foNew.Contacts.value = s;
       window.close();
    }
    if(!(window.opener.document.foNew.Members == null)) {
       window.opener.document.foNew.Members.size = 20 + (j-1)*10;
       window.opener.document.foNew.Members.value = s;
       window.close();
    }
}