//*****************************************************************************************************************************************************************************************
// JavaScript Document Validation Methods
// AP
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// EDS: Zeichenbeschränkung für Seiten: 4000
var int_MaxCharsPerPlaceHolder = 200000;

var str_msg_Global = 'Die Seite kann aus folgenden Gründen nicht gespeichert werden.\n\n';
var str_msg_Sep = '-----------------------------------------------------------------------------------\n'
var str_msg_PlaceHolderTooManyChars = str_msg_Sep + '* PLATZHALTERGRÖSSE\n\nAlle Platzhalter einer Seite dürfen nicht mehr als ' + int_MaxCharsPerPlaceHolder + ' Zeichen haben.   \n';
var str_msg_PlaceHolder = '\tPlatzhalter: %PlaceHolder%, %Chars% Zeichen      \n';
var str_msg_NoKeywrods = str_msg_Sep + '* SCHLAGWORTKATALOG\n\nWählen Sie bitte die entsprechnenden Schlagwörter für diese\nSeite aus.\n';
var str_msg_NoTitle = str_msg_Sep + '* ÜBERSCHRIFT\n\nDie Überschrift muß zwingend eingeben werden.\n'

//*****************************************************************************************************************************************************************************************

function ValidatePageControls(ValidateLength)
{
	var int_CharsInPlaceHolder = 0;
	var boolPHFound = false;
	var boolshowMsg = false;
	var strMsg = '';
	
	if(1==2) //do not validate lenght
	{
		if(ValidateLength) //Length Validation
		{
			for (i=0;i<document.all.length;i++) {
				var tempobj=document.all[i];
				
				if(tempobj.id) //Validate Placeholder Length 
				{
					if(tempobj.id.indexOf('NCPH',0) != -1) //PlaceHolder ?
					{
						if(isExcluded( tempobj.id.substr( tempobj.id.indexOf('_',1)+1) ) )
						{
							break;				
						}

						var int_CurrentLength = 0;
						if(!boolPHFound) strMsg += str_msg_PlaceHolderTooManyChars;
						
						if(tempobj.html)
						{
							int_CurrentLength = trim(SplitHTML(tempobj.html)).length;
						}
						int_CharsInPlaceHolder += int_CurrentLength;
						
						boolPHFound = true;
						strMsg +=  str_msg_PlaceHolder.replace(/%PlaceHolder%/,FriendlyPlaceholderName(tempobj.id.substr(tempobj.id.indexOf('_',1)+1))).replace(/%Chars%/,int_CurrentLength);
					}
				}
			}
			
			if(int_CharsInPlaceHolder > int_MaxCharsPerPlaceHolder) 
			{	
				boolshowMsg=true;
				strMsg += '\n\tAnzahl der Zeichen aller Platzhalter: ' + int_CharsInPlaceHolder + '\n';
			}else{
				strMsg = '';
			}
		}// Length Validation
	}
		
	for (i=0;i<document.all.length;i++) {
		var tempobj=document.all[i];

		if(tempobj.name)
		{
			if(tempobj.name.indexOf('page_title',0) != -1)
			{
				if(trim(tempobj.value).length == 0)
				{
					strMsg += str_msg_NoTitle;
					boolshowMsg = true;
				}
			}
			
			if(tempobj.name.indexOf('KeyList',0) != -1) //Keyword field?
			{
				if(trim(tempobj.value).length == 0)
				{
					strMsg += str_msg_NoKeywrods;
					boolshowMsg = true;
					break;
				}
			}
		}
	}
	
	
	if(boolshowMsg)
	{
		alert(str_msg_Global + strMsg + '\n' + str_msg_Sep + 'Bitte kontrollieren Sie ihre Eingabe.');
		return false;		
	}
	return true;
}        


function SplitHTML(text)
{
	while(text.indexOf('<',0) != -1 && text.indexOf('>',1) != -1 )
	{
		text = text.replace( text.slice(text.indexOf('<',0), text.indexOf('>',1) +1), '' )	
	}
	return text;
}

function isValidDate(strDate)
{
	return false;
}
    
    
function FriendlyPlaceholderName(PlaceHolderName)
{
	switch(PlaceHolderName.toLowerCase())
	{
		case 'news_pic1_text':
			return 'Bildtext 1';
		case 'news_pic2_text':
			return 'Bildtext 2';
		case 'news_subtitle':
			return 'Einleitung';
		case 'introduction':
			return 'Einleitung';
		case 'news_text':
			return 'Haupttext';
		case 'langtext':
			return 'Haupttext';
		case 'publication':
			return 'Publikationen';
		case 'internal_link':
			return 'Interne Links';
		case 'external_link':
			return 'Externe Links';
		case 'page_text':
			return 'Seitentext';
		default:
			return PlaceHolderName.toUpperCase();
	}
}    

function isExcluded(PlaceHolderName)
{
	switch(PlaceHolderName.toLowerCase())
	{
		case 'publication':
			return true;	
		case 'internal_link':  
			return true;
		case 'external_link':
			return true;
		default:
			return false;
	}
}

function isValidOrderForm(that)
{
	var orderdone = false;
	
	for(i=0;i<that.all.length;i++)
	{
		var tempobj=that.all[i];
		var lName = tempobj.id.toLowerCase();
		if(lName.indexOf('msg_',0) != -1)
		{
			if(lName.indexOf('msg_pub',0) != -1)
			{
				if(!isNumericII(trim(tempobj.value)))
				{
					alert('Mengenangaben müssen numerisch sein!');
					return false;					
				}else{
					if(trim(tempobj.value) != '0')
					{
						if(Number(trim(tempobj.value)) > 0)
						{
							 orderdone = true;								
						}
					}
				}			
			}else{
				if(trim(tempobj.value).length == 0)
				{
					alert('Das Pflichtfeld "' + GetFriendlyFieldName(tempobj.id) + '" darf nicht leer sein.\n\nBitte korregieren Sie ihre Eingabe.');
					return false;		
				}
			}
		}
		
		/*
		if(lName.indexOf('email',0) != -1)
		{
			alert('now');
			if(isValidEMail(trim(tempobj.value)) != true)
			{
				alert('Bitte korregieren Sie das Email-Feld.\nDie Eingabe scheint nicht zu stimmen.');
				return false;
			}
		}
		*/
	}
	
	if(!orderdone)
	{
		alert('Wählen Sie bitte einen Artikel aus!');
		return false;
	}
		
	return true;
}



function GetFriendlyFieldName(Name)
{
	switch(Name.toLowerCase())
	{
		case 'msg_firstname':
			return 'Vorname';	
		case 'msg_lastname':  
			return 'Nachname';
		case 'msg_email':
			return 'EMail Adresse';
		case 'msg_address':
			return 'Adresse';
		case 'msg_region':
			return 'Postleitzahl';			
		case 'msg_phone':
			return 'Telefonnummer';
		default:
			return Name;
	}
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++ HELP Functions
//HELP Functions
	
	function checkNumericRange(object, min, max) {
		if (!isNumeric(object.value))
		{
		  alert("Die Eingabe ist nicht nummerisch.")
		  return false
		}

		if (!isInRange(object.value, min, max))
		{
		  alert("Bitte korregieren Sie ihre Eingabe. \nDer Wert kann nur von " + min + " bis " + max + " betragen.    ")
		  return false
		}      

		return true
	}

	function isNumericII(value)
	{
	  	value = trim(value);
		if(isNaN(value))
		{
			return false;
		}else{
			return true;
		}
	}

	function isNumeric(value) {
		if (value == "")  { return false }
		if (value.charAt(0) == "-")
		  start = 1;
		else
		  start = 0;
		for (i=start; i<value.length; i++)
		{
		  if (value.charAt(i) < "0") { return false; }
		  if (value.charAt(i) > "9") { return false; }
		}
		return true;
	}

	function isInRange(value, min, max) {
		var minV = new Number(min)
		var maxV = new Number(max)
		return ((value >= minV) && (value <= maxV))
	}
	
	function isValidEMail(value)
	{
		filter='/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i';
		return filter.test(value)
	}
	
	//''''''''''''' TRIM ''''''''''''''''''''''''''''''

	function trim(argvalue) {
	  var tmpstr = ltrim(argvalue);

	  return rtrim(tmpstr);

	}

	function rtrim(argvalue) {

	  while (1) {
	    if (argvalue.substring(argvalue.length - 1, argvalue.length) != " ")
	      break;
	    argvalue = argvalue.substring(0, argvalue.length - 1);
	  }

	  return argvalue;
	}


	function ltrim(argvalue) {

	  while (1) {
	    if (argvalue.substring(0, 1) != " ")
	      break;
	    argvalue = argvalue.substring(1, argvalue.length);
	  }

	  return argvalue;
	}


//*********************************************************************************************