
var error_flag=0;
var err_flag=0;	
var login_set_error=null;
var email_set_error=null;

function checkAllField(objArray,errShowArray,validTypeArray,minArray,maxArray){
	err_flag=0;
	for(i = 0; i < objArray.length; i++){
	
		if(validTypeArray[i]=="_mailoptional" || validTypeArray[i]=="_stringoptional" || validTypeArray[i]=="_numoptional" || validTypeArray[i]=="_urloptional"){
			ValidateOptional(objArray[i],errShowArray[i],validTypeArray[i],minArray[i],maxArray[i]);
		}
		else{
			Validate(objArray[i],errShowArray[i],validTypeArray[i],minArray[i],maxArray[i]);
		}
		
		if(error_flag==1){		
			err_flag=err_flag+1;			
		}
	} 

}

var basic_err_msg=new Array()
basic_err_msg['_string']="*Should be string";
basic_err_msg['_trim']="*Should not be blank";
basic_err_msg['_mail']="*Insert valid mail";
basic_err_msg['_mailoptional']="*Insert valid mail";
basic_err_msg['_mailrepeat']="*Mail exist";
basic_err_msg['_loginidexist']="*Login-id exist";
basic_err_msg['_categoryexist']="*Category exist";
basic_err_msg['_delimeter']="*Should not be delimeter";
basic_err_msg['_num']="*Should be number";
basic_err_msg['_hiragana']="æ­£ã?—ã?„æ•°å­—ã‚’å…¥åŠ›ã?—ã?¦ä¸‹ã?•ã?„";
basic_err_msg['_hankaku']="æ­£ã?—ã?„å?Šè§’è‹±æ•°å­—ã‚’å…¥åŠ›ã?—ã?¦ã??ã? ã?•ã?„";
basic_err_msg['_min']=" is minimum";
basic_err_msg['_max']=" is maximum";
basic_err_msg['_imagesize']="*Image size should be height*weight";
basic_err_msg['_imagetype']="*Image type should be jpg,bmp,gif,png";
basic_err_msg['_selectone']="*Should be select one";
basic_err_msg['_check']="*Should be select";
basic_err_msg['_alphanumeric']="*Should be Alpha Numeric";
basic_err_msg['_url']="*Not a valid URL";
basic_err_msg['_ip']="*Vot a valid IP";
basic_err_msg['_captcha']="*Security code is not simillar";


var error_msg_key="";
var ajax_valid=0;	

function ValidateOptional(obj, err_show_id, validators, min, max) {
	err_show_obj = document.getElementById(err_show_id);
	
	if (obj.tagName == "INPUT" || obj.tagName == "TEXTAREA") {
		if (obj.type == "text" || obj.type == "textarea" || obj.type == "password") {
			if (validators.match('_mailoptional')) {
				if (obj.value == "") {
					error_flag = 0;
				} 
				else {
					if (CheckMailAddress(obj.value)) {
						error_flag = 0;
					}
					else{
						set_error("_mailoptional");
					}
				} 
				
			}
			if (validators.match("_stringoptional")) {

				if (obj.value == "") {
					error_flag = 0;
				} 
				else {
					if (obj.value.length < min && min != 0) {
						set_error("_min");
					} 
					else
						if (obj.value.length > max && max != 0) {
							set_error("_max");
						} 
						else {
							if (validators.match("_alphanumeric")) {
								if (!(alphaNumeric(obj.value))) {
									set_error("_alphanumeric");
								} 
								else {	
									if (validators.match("_loginidexist")) {									
										checkLoginIdExist(obj,err_show_obj,'_loginidexist',0,0);
									}
									else{
										error_flag = 0;
									}
								}
							} 
							else if (validators.match("_delimeter")) {
									if (!(delimeterCheck(obj.value))) {
										set_error("_delimeter");
									} 
									else {
										error_flag = 0;
									}
								} 
								else if (validators.match("_loginidexist")) {
										if (checkLoginIdExist(obj.value)) {
											set_error("_loginidexist");
										} 
										else {
											error_flag = 0;
										}
									}
						}
				}
			}
			if (validators.match("_numoptional")) {
				if (obj.value == "") {
					error_flag = 0;
				} 
				else {
					if (checknumer(obj.value)) {
						error_flag = 0;
					} 
					else {
						set_error("_num");
					}
				}
			}
			if (validators.match("_urloptional")) {
				if (obj.value == "") {
					error_flag = 0;
				} 
				else {
					if (checkUrl(obj.value)) {
						error_flag = 0;
					} 
					else {
						set_error("_url");
					}
				}
			}
			if (error_flag == 0) {
				hideerror(err_show_obj, obj);
			} 
			else {
				showerror(err_show_obj, obj, basic_err_msg[error_msg_key], min, max);
			}
		}	
	}
	
}

function Validate(obj, err_show_id, validators, min, max) {
	err_show_obj = document.getElementById(err_show_id);

	if (obj.tagName == "INPUT" || obj.tagName == "TEXTAREA") {
		if (obj.type == "text" || obj.type == "textarea" || obj.type == "password") {
			if (validators.match("_trim")) {
				if (checktrim(obj.value)) {
					error_flag = 0;
				} 
				else {
					set_error("_trim");
				}
			}
			if (checktrim(obj.value)) {
				if (validators.match("_string")) {

					if (checknumeric(obj.value)) {
						set_error("_string");
					} 
					else {
						if (obj.value.length < min && min != 0) {
							set_error("_min");
						} 
						else
							if (obj.value.length > max && max != 0) {
								set_error("_max");
							} 
							else {
								if (validators.match("_alphanumeric")) {
									if (!(alphaNumeric(obj.value))) {
										set_error("_alphanumeric");
									} 
									else {	
										if (validators.match("_loginidexist")) {									
											checkLoginIdExist(obj,err_show_obj,'_loginidexist',0,0);
										}
										else{
											error_flag = 0;
										}
									}
								} 
								else if (validators.match("_delimeter")) {
										if (!(delimeterCheck(obj.value))) {
											set_error("_delimeter");
										} 
										else {
											error_flag = 0;
										}
									} 
									else if (validators.match("_loginidexist")) {
											if (checkLoginIdExist(obj.value)) {
												set_error("_loginidexist");
											} 
											else {
												error_flag = 0;
											}
										}
							}
					}
				}
				if (validators.match("_ip")) {
					if (verifyIP(obj.value)) {
						error_flag = 0;
					} 
					else {
						set_error("_ip");
					}
				}
				if (validators.match("_url")) {
					if (checkUrl(obj.value)) {
						error_flag = 0;
					} 
					else {
						set_error("_url");
					}
				}
				if (validators.match("_num")) {
					if (checknumer(obj.value)) {
						error_flag = 0;
					} 
					else {
						set_error("_num");
					}
				}
				if (validators.match("_imagetype")) {
					if (CheckImageType(obj.value)) {
						error_flag = 0;

					} 
					else {
						set_error("_imagetype");
					}
				}
				if (validators.match("_imagesize")) {
					if (CheckImageSize(obj.value)) {
						error_flag = 0;
					} 
					else {
						set_error("_imagesize");
					}
				}
				if (validators.match("_hiragana")) {
					param_hiragana = "hiragana=" + encodeURIComponent(obj.value);
					error_ajax = validation_ajax(param_hiragana);

					if (error_ajax == 1) {
						set_error("_hiragana");
					} 
					else {
						error_flag = 0;
					}
				}

				if (validators.match("_hankaku")) {
					param_hankaku = "hankaku=" + encodeURIComponent(obj.value);
					error_ajax = validation_ajax(param_hankaku);

					if (error_ajax == 1) {
						set_error("_hankaku");
					} else {
						error_flag = 0;
					}

				}
				if (validators.match('_mail')) {
					if (CheckMailAddress(obj.value)) {
						if (validators.match('_mailrepeat')) {
							
							//if (checkMailExist(obj.value)) {
								//set_error("_mailrepeat");
							//} else {
								//error_flag = 0;
							//}
							checkMailExist(obj,err_show_obj,'_mailrepeat',0,0);
						} else {
							error_flag = 0;
						}
					} else {
						set_error("_mail");
					}
				}
				
			}

			if (error_flag == 0) {
				hideerror(err_show_obj, obj);
			} 
			else {
				showerror(err_show_obj, obj, basic_err_msg[error_msg_key], min, max);
			}
		}
		if (obj.type == "radio") {
			if (obj.checked) {
				error_flag = 0;
			} 
			else {
				set_error("_selectone");
			}
			if (error_flag == 0) {
				hideerror(err_show_obj, obj);
			} 
			else {
				showerror(err_show_obj, obj, basic_err_msg[error_msg_key], min, max);
			}
		}
		if (obj.type == "checkbox") {
			if (obj.checked) {
				error_flag = 0;
			} 
			else {
				set_error("_check");
			}
			if (error_flag == 0) {
				hideerror(err_show_obj, obj);
			} 
			else {
				showerror(err_show_obj, obj, basic_err_msg[error_msg_key], min, max);
			}
		}
	} 
	else if (obj.tagName == "SELECT") {			
			if (obj.type == "select-one") {
				if (obj.value == "-1") {
					set_error("_selectone");
				} 
				else {
					error_flag = 0;
				}
				if (error_flag == 0) {
					hideerror(err_show_obj, obj);
				} 
				else {
					showerror(err_show_obj, obj, basic_err_msg[error_msg_key], min, max);
				}
			}
		} 
		else if (obj.tagName == "BODY") {
			if (validators.match("_trim")) {
				if (checktrim(obj.innerHTML)) {
					error_flag = 0;
				} 
				else {
					set_error("_trim");
				}
			}
			if (error_flag == 0) {
				hideerror(err_show_obj, obj);
			} 
			else {
				showerror1(err_show_obj, obj, basic_err_msg[error_msg_key]);
			}
		} 
		else {

			if (validators.match("_captcha")) {
				if (CaptchaValidate(obj)) {
					error_flag = 0;
				} 
				else {
					set_error("_captcha");
				}
				var secu_array = obj.split('-');
				var secu_code = $ (secu_array[0]);
				if (error_flag == 0) {
					hideerror(err_show_obj, secu_code);
				} 
				else {
					showerror1(err_show_obj, secu_code, basic_err_msg[error_msg_key]);
				}
			}
		}
}

function set_error(err_msg_key){
	
	if(error_flag==0){
		
		error_flag=1;		
		error_msg_key=err_msg_key;
		
	}
	else {
		error_msg_key=err_msg_key;
	}	
}



function checktrim(trim_obj_val){
	if(trim_obj_val==""){
		return false;
	}
	else {
		return true;
	}
}
function checknumeric(input_number)
{
    
   var j=0;
   if(input_number.length==0)
       return false;

 /* for(var i=0;i<input_number.length; ++i) {
    var ch=input_number.charAt(i);
     if(ch=='0'||ch=='1'||ch=='2'||ch=='3'||ch=='4'||ch=='5'||ch=='6'||ch=='7'||ch=='8'||ch=='9')
         j=0;
     else
         return false;
   }*/
  return false;
}

function checknumer(input_number)
{
    
   var j=0;  

  for(var i=0;i<input_number.length; ++i) {
    var ch=input_number.charAt(i);
     if(ch=='0'||ch=='1'||ch=='2'||ch=='3'||ch=='4'||ch=='5'||ch=='6'||ch=='7'||ch=='8'||ch=='9')
         j=0;
     else
         return false;
   }
  return true;
}

function showerror1(err_show_obj,main_obj,errormessage)
{
	
	err_show_obj.style.display='block';
	main_obj.style.background='#ffbcbc';
	main_obj.style.border='#c24949 solid 1px';
	err_show_obj.innerHTML= "<font color='red' size='0.1px'>"+ errormessage +"</font>";
}

function showerror(err_show_obj,main_obj,errormessage,min,max)
{
	
	
	err_show_obj.style.display='block';
	main_obj.style.background='#ffbcbc';
	main_obj.style.border='#c24949 solid 1px';
	
	
	if(main_obj.value.length < min && min!=0 && max!=0 && main_obj.value.length!=0){							
		err_show_obj.innerHTML= "<font color='red' size='0.1px'>"+ min+errormessage +"</font>";
	}
	else if(main_obj.value.length > max && max!=0 && main_obj.value.length!=0){
		err_show_obj.innerHTML= "<font color='red' size='0.1px'>"+ max+errormessage +"</font>";
	}
	else{
		err_show_obj.innerHTML= "<font color='red' size='0.1px'>"+ errormessage +"</font>";
	}
	
}

function hideerror(err_sho_obj,main_obj)
{
	
	main_obj.style.background='white';
	main_obj.style.border='#5a5a5a solid 1px';
	//err_show_obj.style.display='none';
	err_show_obj.innerHTML= " "; 
	
}



function  date_validation(y_valid,m_valid,d_valid,err_id)
{
	var year_v = document.getElementById(y_valid).value;
	   
   	var month_v = document.getElementById(m_valid).value;
   	var day_v = document.getElementById(d_valid).value;
   	err_id_obj=document.getElementById(err_id);
   			  
   	if(year_v==""||month_v==""||day_v==""){
   		err_id_obj.style.display='block';
        err_id_obj.innerHTML= "<font color='red'>*</font>"; 
        error_flag=1;
    }
   	else{
   		err_id_obj.style.display='none';
        err_id_obj.innerHTML= ""; 
		error_flag=0;
               			   			
   	}
}

function CheckMailAddress(str) {

		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);
			
		if (str.length==0){
		 
		  return false;
		}
		
		if (str.indexOf(at)==-1){
		 
		  return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		  
		 return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		   
		    return false;
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    
		    return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		  
		    return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		  
		     return false;
		 }
		
		 if (str.indexOf(" ")!=-1){
		   
		     return false;
		 }
		 
 	     return true;				
	}

function CheckImageSize(str) {

	var my_array = str.split('*');

	

		var intro="*";
		
		var lat=str.indexOf(intro);
		var lstr=str.length;
		
		
		if (str.indexOf(intro)==-1){
		 
		 return false;
		}

		if (str.indexOf(intro)==-1 || str.indexOf(intro)==0 || str.indexOf(intro)==lstr-1){
		 
		 	return false;
		}
		if(my_array.length>2)
		{
		  
		  return false;
		}
		if(!checknumeric(my_array[0])){
			 
		     return false;
		}
		if(!checknumeric(my_array[1])){
			
		     return false;
		}

	return true;				
}

function CheckImageType(str) {

	var my_array = str.split(',');
	var err_chk=0;
	var imageArray = new Array('jpg','png','gif','bmp');
	

	for(var i=0;i<my_array.length;i++){
		for(var j=0;j<imageArray.length;j++){			
			if(my_array[i]==imageArray[j]){
				err_chk=err_chk+1;
				
			}
		}
				
			
	}
	if(my_array.length!=err_chk){
			return false;
	}	
	else{
		return true;	
	}			
}
	
function checkgender(genderid,g_err_obj_id)
{	
	gender_obj=document.getElementById(genderid);
	g_err_obj=document.getElementById(g_err_obj_id);
	if(gender_obj.checked) {
		g_err_obj.style.display='none';
		g_err_obj.innerHTML= ""; 
		if(error_flag!=1){error_flag=0;}
	}
	else {
		g_err_obj.style.display='block';
		g_err_obj.innerHTML= "<font color='red'>*</font>";
		error_flag=1;
	}
}

function compare_pass(pass_obj,pass_conf,err_pass_id)
{
	if(pass_obj.value!=document.getElementById(pass_conf).value){
		if(error_flag==0){
			error_flag=1;
			showerror(document.getElementById(err_pass_id),pass_obj,'mismatch');
		}
	}
	else {
		hideerror(document.getElementById(err_pass_id),pass_obj);
		
	}
}

function checkUrl(urlStr){
 	
 	var url_array = urlStr.split(',');
 	
 	for(var i=0;i<url_array.length;i++){
 		argvalue=trim(url_array[i]);
		if (argvalue.indexOf(" ") != -1)
		    return false;
		else if (argvalue.indexOf("http://") == -1)
		    return false;
		else if (argvalue == "http://")
		    return false;
	    else if (argvalue.indexOf("http://") > 0)
		    return false;
		
		argvalue = argvalue.substring(7, argvalue.length);
		if (argvalue.indexOf(".") == -1)
		    return false;
		else if (argvalue.indexOf(".") == 0)
		    return false;
		else if (argvalue.charAt(argvalue.length - 1) == ".")
		    return false;
		
		if (argvalue.indexOf("/") != -1) {
		    argvalue = argvalue.substring(0, argvalue.indexOf("/"));
		    if (argvalue.charAt(argvalue.length - 1) == ".")
		      return false;
		}
		
		if (argvalue.indexOf(":") != -1) {
	      if (argvalue.indexOf(":") == (argvalue.length - 1))
	      	return false;
	      else if (argvalue.charAt(argvalue.indexOf(":") + 1) == ".")
	      	return false;
	      argvalue = argvalue.substring(0, argvalue.indexOf(":"));
	      if (argvalue.charAt(argvalue.length - 1) == ".")
	      	return false;
  		}
  		
	}
  	return true;

}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}


function verifyIP (IPStr) {
	
	errorString = "";
	theName = "IPaddress";
	var ip_array = IPStr.split(',');
 	
 	for(var i=0;i<ip_array.length;i++){
 	
		IPvalue=trim(ip_array[i]);
		var ipPattern = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
		
		var ipArray = IPvalue.match(ipPattern);
		if (IPvalue == "0.0.0.0"){
			return false;
		}
		else if (IPvalue == "255.255.255.255"){
			return false;
		}
		if (ipArray == null){
			return false;
		}
		else {
			for (var j = 1; j <= 4; j++) {
				thisSegment = ipArray[j];
				if (thisSegment > 255) {
					return false;
				}
			}
		}
	}
	return true;
}

function alphaNumeric(input_value){
	
	var valid="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	
	for (var i=0; i < input_value.length; i++) {
        if (valid.indexOf(input_value.charAt(i)) < 0) {
        	return false;
        }
	}
	return true;
}
function delimeterCheck(input_value){
	
	var valid="`~!@#$%^&*()+|\}{[]:;'/.?,<>";
	
	for (var i=0; i < input_value.length; i++) {
		for (var j=0; j < valid.length; j++) {
			if (input_value.charAt(i) == valid.charAt(j)) {
	        	return false;
	        }
		}
	}
	return true;
}
var err_show_obj_login=null;
var obj_login=null;
function checkLoginIdExist(obj, err_show_id, validators, min, max){	
	
	err_show_obj_login = err_show_id;
	obj_login=obj;
	var url1 = window.location.href;
	
	var url2=url1.split('/');
	
	var url=url2[0]+'//'+url2[2]+'/'+url2[3]+'/index.php?option=com_createstore&Itemid=126';
	alert(url);
	var pars = 'loginid_exist=' + 1 +'&login_id=' + obj.value;
   alert(pars);
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'post', 
			parameters: pars, 
			onComplete: showResponseLoginExist
		});		
	
}
function showResponseLoginExist(originalRequest){
	alert(originalRequest.responseText);
	if(originalRequest.responseText==1){
		set_error("_loginidexist");
		login_set_error=1;
	}
	else{	
		login_set_error=0;		
		error_flag = 0;
	}
	if (error_flag == 0) {
		hideerror(err_show_obj_login, obj_login);
	} 
	else {
		showerror(err_show_obj_login, obj_login, basic_err_msg[error_msg_key], 0, 0);
	}
}	

var err_show_obj_mail=null;
var obj_mail=null;
function checkMailExist(obj, err_show_id, validators, min, max){
	
	err_show_obj_mail = err_show_id;
	obj_mail=obj;
	var url1 = window.location.href;
	var url2=url1.split('/');	
	
	var url=url2[0]+'//'+url2[2]+'/'+url2[3]+'/'+url2[4]+'/ActionMailExist';
	var pars = 'emailid=' + 1 +'&email=' + obj.value;
	
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars, 
			onComplete: showResponseMailExist
		});	
}
function showResponseMailExist(originalRequest){
	
	if(originalRequest.responseText==1){
		set_error("_mailrepeat");
		email_set_error=1;
	}
	else{	
		email_set_error=0;		
		error_flag = 0;
	}
	if (error_flag == 0) {
		hideerror(err_show_obj_mail, obj_mail);
	} 
	else {
		showerror(err_show_obj_mail, obj_mail, basic_err_msg[error_msg_key], 0, 0);
	}
}	
	
function CaptchaValidate(main_obj) {  
	
	var secu_array = main_obj.split('-');	
	var secu_code=$F(secu_array[0]);
	var secu_id=$F(secu_array[1]);
	
	if(secu_code.toUpperCase()==secu_id.toUpperCase()){		
		return true;	
	}
	else{		
		return false;	
	}
}
function getRefreshPaging() {
	var pars = 'refresh_id=1&REPLACE_ID=REFRESH_DISPLAY_PART';
	var url1 = window.location.href;
	var url2=url1.split('/');
	var url=url2[0]+'//'+url2[2]+'/'+url2[3]+'/PostCommentValidation/Action';
	
	var aj = new Ajax.Request(url, { method: 'post',parameters: pars,onComplete: getRefreshResponse} ); 
}

function getRefreshResponse(oReq) {  	
	$("refresh_result_div").innerHTML = oReq.responseText; 
}

function getRefreshPaging1() {
	var pars = 'refresh_id=1&REPLACE_ID=REFRESH_DISPLAY_PART1';
	var url1 = window.location.href;
	var url2=url1.split('/');
	var url=url2[0]+'//'+url2[2]+'/'+url2[3]+'/PostCommentValidation/Action';
	
	var aj = new Ajax.Request(url, { method: 'post',parameters: pars,onComplete: getRefreshResponse1} ); 
}

function getRefreshResponse1(oReq) {  	
	$("refresh_result_div1").innerHTML = oReq.responseText; 
}