/***************************************************
* Project: web site of NEC Bulgaria, branch Sliven *
* Copyright © 2003 DataMplant [www.datamplant.com] *
* Author: Hristo Drumev [hdrumev@datamplant.com]   *
***************************************************/

var noData     = 'Няма въведени изходни данни'
var noDataEN   = 'No input information'
var invNum     = 'Невалиден абонатен номер'
var invPNum    = 'Невалиден номер партида'
var invPN      = 'Невалиден единен граждански номер'
var invPCode   = 'Невалиден ПИН Код'
var invBul     = 'Невалиден Булстат'
var invEmail   = 'Невалиден Email'
var invEmailEN = 'Invalid Email'
var invPass    = 'Невалидна парола (паролата може да съдържа букви и цифри и трябва да има дължина поне шест знака)'
var invConf    = 'Въведените пароли не са еднакви'
var noFull     = 'Непълни входни данни. Липсва стойност в някое от полетата'
var noFullEN   = 'Incompleted input information. Missing value in some fields'
var noAgr      = 'Не можете да се регистрирате ако не приемете условията'
var invKey     = 'Невалиден код за активация'
var invName    = 'Невалидно име'
var invNameEN  = 'Invalid name'
var invPhone   = 'Невалиден номер на телефон/пейджър'
var invReq     = 'Невалиден абонатен номер в заявка '
var invMsg     = 'Надхвърлили сте лимита от 5000 символа'
var invMsg     = 'Your limit of 5000 simbols is exceed'

function valci()
{
	var pnum = getValue( 'txtPNum' )
	var pin = getValue( 'txtPinCode' )
	var to = getValue( 'cboCity' )
	if( pnum + pin + to == '') return err( noData )
	else if( pnum == '' || pin == '' || to == '' ) return err( noFull )
	if( !valPNum( pnum ) ) return err( invPNum )
	if( !valPCode( pin ) ) return err( invPCode )
	return true
}

function val()
{
	var num = getValue( 'txtNum' )
	var pn = getValue( 'txtPN' )
	var bul = getValue( 'txtBul' )
	if( num + pn + bul == '' ) return err( noData )
	else if( !valNum( num ) ) return err( invNum )
	else if( !valPN( pn ) ) return err( invPN )
	else if( !valBul( bul ) ) return err( invBul )
	return true
}

function isInRange( str, from, count, min, max )
{
	var num = parseInt( str.substr( from, count ), 10 )
	return num >= min && num <= max
}

function valNum( str )
{
	return str == '' || str.length == 10 && !isNaN( str ) && isInRange( str, 0, 2, 4, 7 ) && isInRange( str, 2, 3, 1, 740 ) && isInRange( str, 5, 2, 1, 26 ) && isInRange( str, 7, 3, 1, 400 )
}

function valPNum( str )
{
	return str == '' || str.length == 4 && !isNaN( str )
}

function valPN( str )
{
	return str == '' || str.length == 10 && !isNaN( str )
}

function valPCode( str )
{
	return str == '' || str.length == 6 && !isNaN( str )
}

function valBul( str )
{
	return str == '' || ( ( str.length == 13 || str.length == 9 ) && !isNaN( str ) )
}

function valSignUp()
{
	var mail = getValue( 'txtEmail' )
	var pass = getValue( 'txtPass' )
	var conf = getValue( 'txtConf' )
	if( mail + pass + conf == '' ) return err( noData )
	else if( mail == '' || pass == '' || conf == '' ) return err( noFull )
	else if( !isEmail( mail ) ) return err( invEmail )
	else if( !isPass( pass ) ) return err( invPass )
	else if( !isPass( conf ) ) return err( invPass )
	else if( pass != conf ) return err( invConf )
  else if( !getValue( 'cbxAgr' ) ) return err( noAgr )
	return true
}

function valSignIn()
{
	var mail = getValue( 'txtEmail' )
	var pass = getValue( 'txtPass' )
	if( mail + pass == '' ) return err( noData )
	else if( mail == '' || pass == '' ) return err( noFull )
	else if( !isEmail( mail ) ) return err( invEmail )
	else if( !isPass( pass ) ) return err( invPass )
	return true
}

function valAct()
{
	if( getValue( 'txtKey' ).length < 30 ) return err( invKey )
	else return true
}

function valEdit()
{
	if( !isName( getValue( 'txtName' ) ) ) return err( invName )
	var num = getValue( 'txtNumber' )
	if( getValue( 'cboPrefix' ) != '' && num != '' && !isPhone( num ) ) return err( invPhone )
	for( var i = 1; i <= 4; i++ )	if( ( getValue( 'txtEmail' + i ) == 1 || getValue( 'txtSMS' + i ) == 1 ) && !valNum( getValue( 'txtReq' + i ) ) ) return err( invReq + i )
	return true
}

function valForgot()
{
	var email = getValue( 'txtEmail' )
	if( email == '' ) return err( noData )
	else if( !isEmail( email ) ) return err( invEmail )
	return true
}

function valChange()
{
	var email = getValue( 'txtEmail' )
	var pass = getValue( 'txtPass' )
	var npass = getValue( 'txtNewPass' )
	var cpass = getValue( 'txtNewConf' )
	if( email + pass + npass + cpass == '' ) return err( noData )
	else if( email == '' || pass == '' || npass == '' || cpass == '' ) return err( noFull )
	else if( !isEmail( email ) ) return err( invEmail )
	else if( !isPass( pass ) || !isPass( npass ) ) return err( invPass )
	else if( npass != cpass ) return err( invConf )
	return true
}

function valDelete()
{
	var email = getValue( 'txtEmail' )
	var pass = getValue( 'txtPass' )
	if( email + pass == '' ) return err( noData )
	else if( email == '' || pass == '' ) return err( noFull )
	else if( !isEmail( email ) ) return err( invEmail )
	else if( !isPass( pass ) ) return err( invPass )
	return true
}

function valAskUs()
{
	var name = getValue( 'txtName' )
	var email = getValue( 'txtEmail' )
	var to = getValue( 'cboPersonmail' )
	var msg = getValue( 'txtMsg' )
	if( name + email + msg + to == '' ) return err( noData )
	else if( name == '' || email == '' || msg == '' || to == '' ) return err( noFull )
	else if( !isName( name ) ) return err( invName )
	else if( !isEmail( email ) ) return err( invEmail )
	else if( msg.length > 5000 ) return err( invMsg )
	return true
}

function valAskUsEN()
{
	var name = getValue( 'txtName' )
	var email = getValue( 'txtEmail' )
	var to = getValue( 'cboPersonmail' )
	var msg = getValue( 'txtMsg' )
	if( name + email + msg + to == '' ) return err( noDataEN )
	else if( name == '' || email == '' || msg == '' || to == '' ) return err( noFullEN )
	else if( !isName( name ) ) return err( invNameEN )
	else if( !isEmail( email ) ) return err( invEmailEN )
	else if( msg.length > 5000 ) return err( invMsgEN )
}

function isPhone( str, len )
{
	if( !len ) len = 6
	return str.length == len && !isNaN( str )
}

function isName( str, hold )
{
	if( !hold ) hold = 0
	return hold ? str.length > 2 : str == '' || str.length > 2
}

function isEmail( str )
{
	var et = str.indexOf( '@' ), dot = str.indexOf( '.' ), l = str.length
	if( l < 7 || dot < 0 || et < 1 || dot > ( l - 3 ) || Math.abs( dot - et ) < 2 || !check( str ) ) return false;
	if( str.substr( et + 1 ).indexOf( '@' ) > -1 || str.indexOf( '..' ) > -1 ) return false
	var a = str.split( '.' )
	return isNaN( a[a.length-1] )
}

function isPass( str )
{
	var inv = /@.+/
	return ( str.length >= 6 && check( str ) && str.search( inv ) < 0 )
}

function check( str )
{ 
	var inv = /[;:"<>\/[*\]=\\\|?#',!$%^&()}{~]/
	return ( str != '' && str.indexOf( ' ' ) < 0 && str.search( inv ) < 0 )
}


